Merged changes from master

This commit is contained in:
Manish Verma
2018-08-06 14:45:17 +05:30
36 changed files with 2122 additions and 1573 deletions

View File

@@ -19,7 +19,7 @@ Flavors of Faveo
Faveo Documentation
--------------------------
* <a href="http://www.ladybirdweb.com/support/knowledgebase" target="_blank">Faveo user Manual</a>
* <a href="https://docs.google.com/document/d/1TEUVyFSzlNRIQGHVK88rzBtYbhyk2FNb3TeekjfsXQA/" target="_blank">Faveo API Documentation</a>
* <a href="https://docs.google.com/document/d/1-ZQ9pueqBNPSD-FZ24sLO_2fgoifKLorN_ocCEYZ1hM/" target="_blank">Faveo API Documentation</a>
* <a href="https://docs.google.com/document/d/1pXpsQKcTyX5x6H4xA8unYxd5Duw2k94xt7wevTdoF_E/" target="_blank">Faveo Event List</a>
* <a href="https://docs.google.com/document/d/1PGcpB19Vr42rM_DrCzC3snujzEL8N9Ocy0yewfPNWqU/" target="_blank">Faveo Plugin creation guide</a>
@@ -75,7 +75,7 @@ We are following Laravel <a href="https://laravel.com/docs/5.2/localization">loc
Contributing
--------------------------
Create your own fork of Faveo master repositoray and use <a href="https://github.com/nvie/gitflow">git-flow</a> to create a new feature. Once the feature is published in your fork, send a pull request to begin the conversation of integrating your new feature into Faveo.
Create your own fork of Faveo master repositoray and use <a href="https://github.com/nvie/gitflow">git-flow</a> to create a new feature. Once the feature is published in your fork, send a pull request to begin the conversation of integrating your new feature into Faveo. Please see the <a href="https://github.com/ladybirdweb/faveo-helpdesk/blob/master/CONTRIBUTING.md">contributing guidelines</a> before sending pull requests.
Help
--------------------------

View File

@@ -103,7 +103,7 @@ class EmailsController extends Controller
{
//dd($request->all());
try {
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode', 'code');
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'user_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode', 'code');
$service = $request->input('sending_protocol');
$validate = '/novalidate-cert';
$fetch = 1;
@@ -174,6 +174,7 @@ class EmailsController extends Controller
$email->email_address = $request->email_address;
$email->email_name = $request->email_name;
$email->user_name = $request->user_name;
$email->fetching_host = $request->fetching_host;
$email->fetching_port = $request->fetching_port;
$email->fetching_protocol = $request->fetching_protocol;
@@ -241,16 +242,17 @@ class EmailsController extends Controller
{
$mailservice_id = $request->input('sending_protocol');
$driver = $this->getDriver($mailservice_id);
$username = $request->input('email_address');
$address = $request->input('email_address');
$username = $request->input('user_name');
$password = $request->input('password');
$name = $request->input('email_name');
$host = $request->input('sending_host');
$port = $request->input('sending_port');
$enc = $request->input('sending_encryption');
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode');
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'user_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode');
$this->emailService($driver, $service_request);
$this->setMailConfig($driver, $username, $name, $password, $enc, $host, $port);
$this->setMailConfig($driver, $address, $name, $username, $password, $enc, $host, $port);
$transport = \Swift_SmtpTransport::newInstance($host, $port, $enc);
$transport->setUsername($username);
$transport->setPassword($password);
@@ -264,30 +266,31 @@ class EmailsController extends Controller
{
$mailservice_id = $request->input('sending_protocol');
$driver = $this->getDriver($mailservice_id);
$username = $request->input('email_address');
$address = $request->input('email_address');
$username = $request->input('user_name');
$password = $request->input('password');
$name = $request->input('email_name');
$host = $request->input('sending_host');
$port = $request->input('sending_port');
$enc = $request->input('sending_encryption');
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode');
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'user_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode');
$this->emailService($driver, $service_request);
$this->setMailConfig($driver, $username, $name, $password, $enc, $host, $port);
$this->setMailConfig($driver, $address, $name, $username, $password, $enc, $host, $port);
$controller = new \App\Http\Controllers\Common\PhpMailController();
$subject = 'test';
$data = 'test';
//dd(\Config::get('mail'),\Config::get('services'));
$send = $controller->laravelMail($username, $name, $subject, $data, [], []);
$send = $controller->laravelMail($address, $name, $subject, $data, [], []);
return $send;
}
public function setMailConfig($driver, $username, $name, $password, $enc, $host, $port)
public function setMailConfig($driver, $address, $name, $username, $password, $enc, $host, $port)
{
$configs = [
'username' => $username,
'from' => ['address' => $username, 'name' => $name],
'from' => ['address' => $address, 'name' => $name],
'password' => $password,
'encryption' => $enc,
'host' => $host,
@@ -456,7 +459,7 @@ class EmailsController extends Controller
$service = $request->input('fetching_protocol');
$encryption = $request->input('fetching_encryption');
$validate = $request->input('imap_validate');
$username = $request->input('email_address');
$username = $request->input('user_name');
$password = $request->input('password');
$server = new Fetch($host, $port, $service);
//$server->setFlag('novalidate-cert');
@@ -510,7 +513,7 @@ class EmailsController extends Controller
$mail->isSMTP();
$mail->Host = $request->input('sending_host'); // Specify main and backup SMTP servers
//$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = $request->input('email_address'); // SMTP username
$mail->Username = $request->input('user_name'); // SMTP username
$mail->Password = $request->input('password'); // SMTP password
$mail->SMTPSecure = $request->input('sending_encryption'); // Enable TLS encryption, `ssl` also accepted
$mail->Port = $request->input('sending_port'); // TCP port to connect to

View File

@@ -285,28 +285,30 @@ class TicketController extends Controller
$status = $this->checkUserVerificationStatus();
if ($status == 1) {
if ($api != false) {
return Lang::get('lang.Ticket-created-successfully');
$ticket = Tickets::where('ticket_number', '=', $result[0])->select('id')->first();
return ['ticket_id' => $ticket->id, 'message' => Lang::get('lang.Ticket-created-successfully')];
}
return Redirect('newticket')->with('success', Lang::get('lang.Ticket-created-successfully'));
} else {
if ($api != false) {
return Lang::get('lang.Ticket-created-successfully');
return response()->json(['success' => Lang::get('lang.Ticket-created-successfully')]);
}
return Redirect('newticket')->with('success', Lang::get('lang.Ticket-created-successfully2'));
}
} else {
if ($api != false) {
return Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken');
return response()->json(['error' => Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken')], 500);
}
return Redirect('newticket')->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken'))->withInput($request->except('password'));
}
} catch (Exception $e) {
// dd($e);
dd($e);
if ($api != false) {
return $e->getMessage();
return response()->json(['error' => $e->getMessage()], 500);
}
return Redirect()->back()->with('fails', '<li>'.$e->getMessage().'</li>');
@@ -882,7 +884,7 @@ class TicketController extends Controller
}
$set_mails = [];
if (Alert::first()->ticket_status == 1 || Alert::first()->ticket_admin_email == 1) {
if (Alert::first() && (Alert::first()->ticket_status == 1 || Alert::first()->ticket_admin_email == 1)) {
// send email to admin
$admins = User::where('role', '=', 'admin')->get();
foreach ($admins as $admin) {
@@ -894,7 +896,7 @@ class TicketController extends Controller
}
if ($is_reply == 0) {
if (Alert::first()->ticket_status == 1 || Alert::first()->ticket_department_member == 1) {
if (Alert::first() && (Alert::first()->ticket_status == 1 || Alert::first()->ticket_department_member == 1)) {
// send email to agents
$agents = User::where('role', '=', 'agent')->get();
foreach ($agents as $agent) {

View File

@@ -149,6 +149,8 @@ class ApiController extends Controller
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$core = new CoreTicketController($PhpMailController, $NotificationController);
$this->request->merge(['body' => preg_replace('/[ ](?=[^>]*(?:<|$))/', '&nbsp;', nl2br($this->request->get('body')))]);
$request->replace($this->request->except('token', 'api_key'));
$response = $core->post_newticket($request, $code, true);
//$response = $this->ticket->createTicket($user_id, $subject, $body, $helptopic, $sla, $priority, $source, $headers, $dept, $assignto, $form_data, $attach);
//return $response;
@@ -197,6 +199,7 @@ class ApiController extends Controller
$result = $this->ticket->reply($this->thread, $this->request, $this->attach, $attach);
$result = $result->join('users', 'ticket_thread.user_id', '=', 'users.id')
->select('ticket_thread.*', 'users.first_name as first_name')
->orderBy('ticket_thread.id', 'desc')
->first();
return response()->json(compact('result'));
@@ -235,9 +238,8 @@ class ApiController extends Controller
return response()->json(compact('error'));
}
$ticket_id = $this->request->input('ticket_id');
$result = $this->ticket->ticketEditPost($ticket_id, $this->thread, $this->model);
return response()->json(compact('result'));
return $this->ticket->ticketEditPost($ticket_id, $this->thread, $this->model);
} catch (\Exception $e) {
$error = $e->getMessage();
$line = $e->getLine();
@@ -269,7 +271,7 @@ class ApiController extends Controller
}
$id = $this->request->input('ticket_id');
$result = $this->ticket->delete($id, $this->model);
$result = $this->ticket->delete(explode(',', $id), $this->model);
return response()->json(compact('result'));
} catch (\Exception $e) {
@@ -351,16 +353,19 @@ class ApiController extends Controller
->join('sla_plan', 'sla_plan.id', '=', 'tickets.sla')
->join('help_topic', 'help_topic.id', '=', 'tickets.help_topic_id')
->join('ticket_status', 'ticket_status.id', '=', 'tickets.status')
->join('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
->whereNotNull('title');
})
->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'title', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt);
}
->leftJoin('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id');
})
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id');
if ($user->role == 'agent') {
$id = $user->id;
$dept = \DB::table('department_assign_agents')->where('agent_id', '=', $id)->pluck('department_id')->toArray();
$unassigned = $unassigned->where(function ($query) use ($dept, $id) {
$query->whereIn('tickets.dept_id', $dept)
->orWhere('assigned_to', '=', $id);
});
}
$unassigned = $unassigned->select('ticket_priority.priority_color as priority_color', \DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as title'), 'tickets.duedate as overdue_date', \DB::raw('count(ticket_attachment.id) as attachment'), \DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->orderBy('updated_at', 'desc')
->groupby('tickets.id')
->distinct()
@@ -401,16 +406,19 @@ class ApiController extends Controller
->join('sla_plan', 'sla_plan.id', '=', 'tickets.sla')
->join('help_topic', 'help_topic.id', '=', 'tickets.help_topic_id')
->join('ticket_status', 'ticket_status.id', '=', 'tickets.status')
->join('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
->whereNotNull('title');
})
->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'title', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt);
}
->leftJoin('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id');
})
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id');
if ($user->role == 'agent') {
$id = $user->id;
$dept = \DB::table('department_assign_agents')->where('agent_id', '=', $id)->pluck('department_id')->toArray();
$result = $result->where(function ($query) use ($dept, $id) {
$query->whereIn('tickets.dept_id', $dept)
->orWhere('assigned_to', '=', $id);
});
}
$result = $result->select('tickets.duedate as overdue_date', 'ticket_priority.priority_color as priority_color', \DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as title'), \DB::raw('count(ticket_attachment.id) as attachment'), \DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->orderBy('updated_at', 'desc')
->groupby('tickets.id')
->distinct()
@@ -564,8 +572,8 @@ class ApiController extends Controller
$users = $this->user
->leftJoin('user_assign_organization', 'user_assign_organization.user_id', '=', 'users.id')
->leftJoin('organization', 'organization.id', '=', 'user_assign_organization.org_id')
->where('role', 'user')
->select('users.id', 'user_name', 'first_name', 'last_name', 'email', 'phone_number', 'users.profile_pic', 'organization.name AS company', 'users.active')
->where('users.role', 'user')
->select('users.id', 'users.user_name', 'users.first_name', 'users.last_name', 'users.email', 'users.phone_number', 'users.profile_pic', 'organization.name AS company', 'users.active', 'users.ext as telephone_extension', 'users.mobile', 'users.phone_number as telephone', 'users.country_code as mobile_code')
->paginate(10)
->toJson();
@@ -669,9 +677,10 @@ class ApiController extends Controller
}
$id = $this->request->input('id');
$result = $this->user
->leftjoin('ticket_thread', 'ticket_thread.user_id', '=', 'users.id')
->rightjoin('ticket_thread', 'ticket_thread.user_id', '=', 'users.id')
->select('ticket_thread.id', 'ticket_id', 'user_id', 'poster', 'source', 'title', 'body', 'is_internal', 'format', 'ip_address', 'ticket_thread.created_at', 'ticket_thread.updated_at', 'users.first_name', 'users.last_name', 'users.user_name', 'users.email', 'users.profile_pic')
->where('ticket_id', $id)
->orderBy('ticket_thread.id', 'desc')
->get()
->toJson();
@@ -878,7 +887,7 @@ class ApiController extends Controller
public function getPriority()
{
try {
$result = $this->priority->get();
$result = $this->priority->select('priority as name', 'priority_id as id')->get();
return response()->json(compact('result'));
} catch (\Exception $e) {
@@ -961,16 +970,20 @@ class ApiController extends Controller
->join('sla_plan', 'sla_plan.id', '=', 'tickets.sla')
->join('help_topic', 'help_topic.id', '=', 'tickets.help_topic_id')
->join('ticket_status', 'ticket_status.id', '=', 'tickets.status')
->join('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
->whereNotNull('ticket_thread.title');
})
->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'ticket_thread.title', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name', 'department.id as department_id', 'users.primary_dpt as user_dpt')
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt);
}
->leftJoin('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id');
})
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id')
->where('ticket_status.name', 'Open');
if ($user->role == 'agent') {
$id = $user->id;
$dept = \DB::table('department_assign_agents')->where('agent_id', '=', $id)->pluck('department_id')->toArray();
$inbox = $inbox->where(function ($query) use ($dept, $id) {
$query->whereIn('tickets.dept_id', $dept)
->orWhere('assigned_to', '=', $id);
});
}
$inbox = $inbox->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', \DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as title'), 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'ticket_priority.priority_color as priority_color', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name', 'department.id as department_id', 'users.primary_dpt as user_dpt', \DB::raw('count(ticket_attachment.id) as attachment'), 'tickets.duedate as overdue_date')
->orderBy('updated_at', 'desc')
->groupby('tickets.id')
->distinct()
@@ -1012,7 +1025,7 @@ class ApiController extends Controller
$userid = $this->request->input('userid');
$ticketid = $this->request->input('ticketid');
$body = $this->request->input('body');
$body = preg_replace('/[ ](?=[^>]*(?:<|$))/', '&nbsp;', nl2br($this->request->input('body')));
$thread = $this->thread->create(['ticket_id' => $ticketid, 'user_id' => $userid, 'is_internal' => 1, 'body' => $body]);
return response()->json(compact('thread'));
@@ -1042,16 +1055,19 @@ class ApiController extends Controller
->join('sla_plan', 'sla_plan.id', '=', 'tickets.sla')
->join('help_topic', 'help_topic.id', '=', 'tickets.help_topic_id')
->join('ticket_status', 'ticket_status.id', '=', 'tickets.status')
->join('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
->whereNotNull('title');
})
->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'title', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt);
}
->leftJoin('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id');
})
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id');
if ($user->role == 'agent') {
$id = $user->id;
$dept = \DB::table('department_assign_agents')->where('agent_id', '=', $id)->pluck('department_id')->toArray();
$trash = $trash->where(function ($query) use ($dept, $id) {
$query->whereIn('tickets.dept_id', $dept)
->orWhere('assigned_to', '=', $id);
});
}
$trash = $trash->select('ticket_priority.priority_color as priority_color', \DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as title'), 'tickets.duedate as overdue_date', \DB::raw('count(ticket_attachment.id) as attachment'), \DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
->orderBy('updated_at', 'desc')
->groupby('tickets.id')
->distinct()
@@ -1095,22 +1111,20 @@ class ApiController extends Controller
->where('status', '=', 1);
//->where('user_id', '=', $id);
})
->join('users as client', 'tickets.user_id', '=', 'client.id')
->join('department', 'department.id', '=', 'tickets.dept_id')
->join('ticket_priority', 'ticket_priority.priority_id', '=', 'tickets.priority_id')
->join('sla_plan', 'sla_plan.id', '=', 'tickets.sla')
->join('help_topic', 'help_topic.id', '=', 'tickets.help_topic_id')
->join('ticket_status', 'ticket_status.id', '=', 'tickets.status')
->join('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
->whereNotNull('title');
->leftJoin('ticket_thread', function ($join) {
$join->on('tickets.id', '=', 'ticket_thread.ticket_id');
})
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id')
->where('users.id', $id)
->select(\DB::raw('max(ticket_thread.updated_at) as updated_at'), 'user_name', 'first_name', 'last_name', 'email', 'profile_pic', 'ticket_number', 'tickets.id', 'title', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name')
// ->where(function($query) use($user) {
// if ($user->role != 'admin') {
// $query->where('tickets.dept_id', '=', $user->primary_dpt);
// }
// })
->select(
'ticket_priority.priority_color as priority_color', \DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as title'), 'tickets.duedate as overdue_date', \DB::raw('count(ticket_attachment.id) as attachment'), \DB::raw('max(ticket_thread.updated_at) as updated_at'), 'client.user_name', 'client.first_name', 'client.last_name', 'client.email', 'client.profile_pic', 'ticket_number', 'tickets.id', 'tickets.created_at', 'department.name as department_name', 'ticket_priority.priority as priotity_name', 'sla_plan.name as sla_plan_name', 'help_topic.topic as help_topic_name', 'ticket_status.name as ticket_status_name'
)
->orderBy('updated_at', 'desc')
->groupby('tickets.id')
->distinct()
@@ -1148,6 +1162,12 @@ class ApiController extends Controller
return response()->json(compact('error'));
}
$user = User::where('users.id', $id)
->leftJoin('user_assign_organization', 'users.id', '=', 'user_assign_organization.user_id')
->leftJoin('organization', 'user_assign_organization.org_id', '=', 'organization.id')
->select(
'users.first_name', 'users.last_name', 'users.user_name', 'users.email', 'users.id', 'users.profile_pic', 'users.ban', 'users.active', 'users.is_delete', 'users.phone_number', 'users.ext', 'users.country_code', 'users.mobile', 'organization.name as company'
)->first()->toArray();
$result = $this->user->join('tickets', function ($join) use ($id) {
$join->on('users.id', '=', 'tickets.user_id')
->where('user_id', '=', $id);
@@ -1166,10 +1186,9 @@ class ApiController extends Controller
->groupby('tickets.id')
->distinct()
->get()
// ->paginate(10)
->toJson();
->toArray();
return $result;
return response()->json(['tickets' => $result, 'requester' => $user]);
} catch (\Exception $e) {
$error = $e->getMessage();
$line = $e->getLine();
@@ -1206,42 +1225,15 @@ class ApiController extends Controller
});
$response = $this->differenciateHelpTopic($query)
->leftJoin('department', 'tickets.dept_id', '=', 'department.id')
->leftJoin('ticket_priority', 'tickets.priority_id', '=', 'ticket_priority.priority_id')
->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
->leftJoin('sla_plan', 'tickets.sla', '=', 'sla_plan.id')
->leftJoin('ticket_source', 'tickets.source', '=', 'ticket_source.id');
->leftJoin('department', 'tickets.dept_id', '=', 'department.id')
->leftJoin('ticket_priority', 'tickets.priority_id', '=', 'ticket_priority.priority_id')
->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
->leftJoin('sla_plan', 'tickets.sla', '=', 'sla_plan.id')
->leftJoin('ticket_source', 'tickets.source', '=', 'ticket_source.id');
//$select = 'users.email','users.user_name','users.first_name','users.last_name','tickets.id','ticket_number','num_sequence','user_id','priority_id','sla','max_open_ticket','captcha','status','lock_by','lock_at','source','isoverdue','reopened','isanswered','is_deleted', 'closed','is_transfer','transfer_at','reopened_at','duedate','closed_at','last_message_at';
$result = $response->addSelect(
'users.email',
'users.user_name',
'users.first_name',
'users.last_name',
'tickets.id',
'ticket_number',
'user_id',
'ticket_priority.priority_id',
'ticket_priority.priority as priority_name',
'department.name as dept_name',
'ticket_status.name as status_name',
'sla_plan.name as sla_name',
'ticket_source.name as source_name',
'sla_plan.id as sla',
'ticket_status.id as status',
'lock_by',
'lock_at',
'ticket_source.id as source',
'isoverdue',
'reopened',
'isanswered',
'is_deleted',
'closed',
'reopened_at',
'duedate',
'closed_at',
'tickets.created_at',
'tickets.updated_at')->first();
'users.email', 'users.user_name', 'users.first_name', 'users.last_name', 'tickets.id', 'ticket_number', 'user_id', 'ticket_priority.priority_id', 'ticket_priority.priority as priority_name', 'department.name as dept_name', 'ticket_status.name as status_name', 'sla_plan.name as sla_name', 'ticket_source.name as source_name', 'sla_plan.id as sla', 'ticket_status.id as status', 'lock_by', 'lock_at', 'ticket_source.id as source', 'isoverdue', 'reopened', 'isanswered', 'is_deleted', 'closed', 'reopened_at', 'duedate', 'closed_at', 'tickets.created_at', 'tickets.updated_at')->first();
return response()->json(compact('result'));
} catch (\Exception $e) {
@@ -1422,6 +1414,13 @@ class ApiController extends Controller
public function dependency()
{
try {
$user = \JWTAuth::parseToken()->authenticate();
$tickets = \DB::table('tickets');
if ($user->role == 'agent') {
$id = $user->id;
$dept = DepartmentAssignAgents::where('agent_id', '=', $id)->pluck('department_id')->toArray();
$tickets = $tickets->whereIn('tickets.dept_id', $dept)->orWhere('assigned_to', '=', $user->id);
}
$department = $this->department->select('name', 'id')->get()->toArray();
$sla = $this->slaPlan->select('name', 'id')->get()->toArray();
$staff = $this->user->where('role', 'agent')->select('email', 'id')->get()->toArray();
@@ -1430,8 +1429,46 @@ class ApiController extends Controller
$helptopic = $this->helptopic->select('topic', 'id')->get()->toArray();
$status = \DB::table('ticket_status')->select('name', 'id')->get();
$source = \DB::table('ticket_source')->select('name', 'id')->get();
$result = ['departments' => $department, 'sla' => $sla, 'staffs' => $staff, 'teams' => $team,
'priorities' => $priority, 'helptopics' => $helptopic, 'status' => $status, 'sources' => $source, ];
$statuses = collect($tickets
->join('ticket_status', 'tickets.status', '=', 'ticket_status.id')
->select('ticket_status.name as status', \DB::raw('COUNT(tickets.id) as count'))
->groupBy('ticket_status.id')
->get())->transform(function ($item) {
return ['name' => ucfirst($item->status), 'count' => $item->count];
});
$unassigned = $this->user->leftJoin('tickets', function ($join) {
$join->on('users.id', '=', 'tickets.user_id')
->whereNull('assigned_to')->where('status', '=', 1);
})
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt);
}
})
->select(\DB::raw('COUNT(tickets.id) as unassined'))
->value('unassined');
$mytickets = $this->user->leftJoin('tickets', function ($join) use ($user) {
$join->on('users.id', '=', 'tickets.assigned_to')
->where('tickets.assigned_to', '=', $user->id)->where('status', '=', 1);
})
->where(function ($query) use ($user) {
if ($user->role != 'admin') {
$query->where('tickets.dept_id', '=', $user->primary_dpt)->orWhere('assigned_to', '=', $user->id);
}
})
->select(\DB::raw('COUNT(tickets.id) as my_ticket'))
->value('my_ticket');
$depend = collect([['name' => 'unassigned', 'count' => $unassigned], ['name' => 'mytickets', 'count' => $mytickets]]);
$collection = $statuses->merge($depend);
$result = ['departments' => $department, 'sla' => $sla, 'staffs' => $staff, 'teams' => $team,
'priorities' => $priority, 'helptopics' => $helptopic,
'status' => $status,
'sources' => $source,
'tickets_count' => $collection, ];
return response()->json(compact('result'));
// $result = ['departments' => $department, 'sla' => $sla, 'staffs' => $staff, 'teams' => $team,
// 'priorities' => $priority, 'helptopics' => $helptopic, 'status' => $status, 'sources' => $source,];
return response()->json(compact('result'));
} catch (\Exception $e) {
@@ -1515,4 +1552,49 @@ class ApiController extends Controller
return response()->json(compact('error'));
}
}
public function createUser()
{
try {
$v = \Validator::make(
$this->request->all(), [
'username' => 'required|unique:users,user_name',
'first_name' => 'required',
]
);
if ($v->fails()) {
$error = $v->messages();
return response()->json(compact('error'));
}
$str = str_random(8);
$array = ['password' => $str, 'password_confirmation' => $str, 'email' => $this->request->input('email'), 'full_name' => $this->request->input('first_name')];
$all = $this->request->input();
$merged = $array + $all;
$request = new \App\Http\Requests\helpdesk\RegisterRequest();
$request->replace($merged);
if ($request->has('username')) {
$request->merge(['user_name' => $request->get('username')]);
}
\Route::dispatch($request);
$auth = new \App\Http\Controllers\Auth\AuthController();
$user = new User();
$register = $auth->postRegister($user, $request, true);
if ($register) {
return response()->json(compact('register'));
}
} catch (\Exception $e) {
$error = $e->getMessage();
$line = $e->getLine();
$file = $e->getFile();
return response()->json(compact('error', 'file', 'line'));
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
$error = $e->getMessage();
$line = $e->getLine();
$file = $e->getFile();
return response()->json(compact('error', 'file', 'line'));
}
}
}

View File

@@ -345,7 +345,7 @@ class TicketController extends Controller
$re = $this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('0', $tickets->dept_id), $to = ['name' => $user_name, 'email' => $email], $message = ['subject' => $eventthread->title, 'scenario' => 'create-ticket-by-agent', 'body' => $thread->body], $template_variables = ['agent_sign' => Auth::user()->agent_sign, 'ticket_number' => $tickets->number]);
//dd($re);
} catch (\Exception $e) {
throw new \Exception($e->getMessage());
//throw new \Exception($e->getMessage());
}
$collaborators = Ticket_Collaborator::where('ticket_id', '=', $ticket_id)->get();
@@ -426,11 +426,14 @@ class TicketController extends Controller
$threads = $thread->where('ticket_id', '=', $ticket_id)->first();
$threads->title = Input::get('subject');
$threads->save();
} catch (\Exception $ex) {
$result = $ex->getMessage();
return $threads;
} catch (\Exception $e) {
return $e->getMessage();
return response()->json(compact('result'), 500);
}
$result = ['success' => 'Edited successfully'];
return response()->json(compact('result'));
}
/**

View File

@@ -61,7 +61,7 @@ class TokenAuthController extends Controller
return response()->json(compact('error'));
}
$user_id = \Auth::user()->id;
$user_id = \Auth::user();
// if no errors are encountered we can return a JWT
return response()->json(compact('token', 'user_id'));
}

View File

@@ -414,7 +414,7 @@ class SettingsController extends Controller
$app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php';
chmod($app, 0644);
$str = "\n\n\t\t\t'App\\Plugins\\$filename"."\\ServiceProvider',";
$line_i_am_looking_for = 185;
$line_i_am_looking_for = 190;
$lines = file($app, FILE_IGNORE_NEW_LINES);
$lines[$line_i_am_looking_for] = $str;
file_put_contents($app, implode("\n", $lines));
@@ -586,7 +586,7 @@ class SettingsController extends Controller
if (!$plug) {
$app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php';
$str = "\n'App\\Plugins\\$slug"."\\ServiceProvider',";
$line_i_am_looking_for = 185;
$line_i_am_looking_for = 190;
$lines = file($app, FILE_IGNORE_NEW_LINES);
$lines[$line_i_am_looking_for] = $str;
file_put_contents($app, implode("\n", $lines));
@@ -600,7 +600,7 @@ class SettingsController extends Controller
$app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php';
$str = "\n'App\\Plugins\\$slug"."\\ServiceProvider',";
$line_i_am_looking_for = 185;
$line_i_am_looking_for = 190;
$lines = file($app, FILE_IGNORE_NEW_LINES);
$lines[$line_i_am_looking_for] = $str;
file_put_contents($app, implode("\n", $lines));

View File

@@ -25,6 +25,6 @@ class CheckRoleAgent
return $next($request);
}
return redirect('dashboard')->with('fails', 'You are not Autherised');
return redirect('dashboard')->with('fails', 'You are not Authorised');
}
}

View File

@@ -35,8 +35,8 @@ class EmailsEditRequest extends Request
// 'priority' => 'required',
// 'help_topic' => 'required',
// 'imap_config' => 'required',
'password' => 'required|min:6',
// 'user_name' => 'required',
'password' => 'required|min:6',
'user_name' => 'required',
// 'sending_host' => 'required',
// 'sending_port' => 'required',
//'mailbox_protocol' => 'required'

View File

@@ -82,7 +82,7 @@ Breadcrumbs::register('emails.edit', function ($breadcrumbs) {
Breadcrumbs::register('banlist.index', function ($breadcrumbs) {
$breadcrumbs->parent('setting');
$breadcrumbs->push(Lang::get('lang.banlists'), route('banlist.index'));
$breadcrumbs->push(Lang::get('lang.ban_lists'), route('banlist.index'));
});
Breadcrumbs::register('banlist.create', function ($breadcrumbs) {
$breadcrumbs->parent('banlist.index');

View File

@@ -706,7 +706,6 @@ Route::group(['middleware' => ['web']], function () {
* @name Faveo
*/
Route::group(['prefix' => 'api/v1'], function () {
Route::post('register', 'Api\v1\ApiController@register');
Route::post('authenticate', 'Api\v1\TokenAuthController@authenticate');
Route::get('authenticate/user', 'Api\v1\TokenAuthController@getAuthenticatedUser');
Route::get('/database-config', ['as' => 'database-config', 'uses' => 'Api\v1\InstallerApiController@config_database']);
@@ -752,6 +751,7 @@ Route::group(['middleware' => ['web']], function () {
Route::post('collaborator/get-ticket', 'Api\v1\ApiController@getCollaboratorForTicket');
Route::get('my-tickets-user', 'Api\v1\ApiController@getMyTicketsUser');
Route::get('dependency', 'Api\v1\ApiController@dependency');
Route::post('register', 'Api\v1\ApiController@createUser');
});
/*

File diff suppressed because it is too large Load Diff

View File

@@ -51,7 +51,6 @@ return [
'password_confirmation' => 'Password confirmation',
'woops' => 'Whoops!',
'theirisproblem' => 'There were some problems with your input.',
'login' => 'Login',
'e-mail' => 'Email',
'reg_new_member' => 'Register a new membership',
'this_account_is_currently_inactive' => 'This account is currently inactive!',
@@ -171,7 +170,6 @@ return [
*/
'ban_lists' => 'Ban lists',
'ban_email' => 'Ban email',
'banlists' => 'Ban lists',
'ban_status' => 'Ban status',
'list_of_banned_emails' => 'List of banned emails',
'edit_banned_email' => 'Edit banned email',
@@ -757,7 +755,6 @@ return [
'edit' => 'Edit',
'departments' => 'Departments',
'groups' => 'Groups',
'select_a_time_zone' => 'Select a time zone',
'time_zones' => 'Time zones',
/*
|--------------------------------------
@@ -828,7 +825,6 @@ return [
'the_associated_helptopic_has_been_deactivated' => 'The associated helptopic has been deactivated',
'department_deleted_sucessfully' => 'Department deleted successfully',
'department_can_not_delete' => 'Department can not be deleted',
'select_a_department' => 'Select a department',
'make-default-department' => 'Make system\'s default department',
/*
|--------------------------------------
@@ -886,6 +882,7 @@ return [
'group_deleted_successfully' => 'Group deleted successfully',
'group_cannot_delete' => 'Group cannot delete',
'failed_to_load_the_page' => 'Failed to load the page',
'list_of_groups' => 'List of groups',
/*
|--------------------------------------
| SMTP Page
@@ -1164,6 +1161,7 @@ return [
'copyright' => 'Copyright',
'all_rights_reserved' => 'All rights reserved',
'powered_by' => 'Powered by',
'version' => 'Version',
/*
|------------------------------------------------
|Guest-User Page
@@ -1360,7 +1358,6 @@ return [
'post_comment' => 'Post comment',
'plugin' => 'Plugin',
'edit_profile' => 'Edit profile',
'you_are_here' => 'You are here',
'Send' => 'SEND',
'no_article' => 'No article',
'profile_settings' => 'Profile settings',
@@ -1591,7 +1588,6 @@ return [
'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.',
//updated 15-5-2017

View File

@@ -44,7 +44,6 @@ return [
'password' => 'Mot de passe',
'woops' => 'Oups!',
'theirisproblem' => 'Il y a eu un problème avec ce que vous avez saisi',
'login' => 'Connexion',
'e-mail' => 'E-mail',
'reg_new_member' => 'Inscrivez-vous',
'this_account_is_currently_inactive' => 'Ce compte est actuellement inactif!',
@@ -149,7 +148,6 @@ return [
*/
'ban_lists' => 'Ban lists',
'ban_email' => 'Ban email',
'banlists' => 'Ban lists',
'ban_status' => 'Ban status',
'list_of_banned_emails' => 'List of banned emails',
'edit_banned_email' => 'Edit banned email',
@@ -790,7 +788,6 @@ return [
'the_associated_helptopic_has_been_deactivated' => 'La branche de support associée a été désactivée',
'department_deleted_sucessfully' => 'Département supprimé avec succès',
'department_can_not_delete' => 'Le département ne peut pas être supprimé',
'select_a_department' => 'Sélectionner un département',
'make-default-department' => 'Marquer comme département par défaut du système',
/*
|--------------------------------------
@@ -1126,6 +1123,7 @@ return [
'copyright' => 'Copyright',
'all_rights_reserved' => 'Tous droits réservés',
'powered_by' => 'Powered by',
'version' => 'Version',
/*
|------------------------------------------------
|Guest-User Page
@@ -1322,7 +1320,6 @@ return [
'post_comment' => 'Poster commentaire',
'plugin' => 'Plugin',
'edit_profile' => 'Modifier profil',
'you_are_here' => 'Vous êtes ici',
'Send' => 'VALIDER',
'no_article' => 'Pas d\'article',
'profile_settings' => 'Paramètres du profil',
@@ -1562,7 +1559,6 @@ return [
'banned-users' => 'Utilisateurs bannis',
'inactive-users' => 'Utilisateurs inactifs',
'all-users' => 'Tous les utilisateurs',
'search' => 'Rechercher...',
//update 21-12-2016
'selected-user-is-already-the-owner' => 'L\'utilisateur sélectionné est déjà le propriétaire du ticket.',
//updated 15-5-2017

File diff suppressed because it is too large Load Diff

View File

@@ -14,5 +14,5 @@ return [
*/
'previous' => '&laquo; Precedente',
'next' => 'Prossimo &raquo;',
'next' => 'Successivo &raquo;',
];

View File

@@ -13,9 +13,9 @@ return [
|
*/
'password' => 'Le Passwords devono essere almeno di sei caratteri e combaciare.',
'user' => 'Non esiste un utente con questo indirizzo e-mail.',
'token' => 'Il token per il reset della password non è valido.',
'sent' => 'Una email con il link al reset della passowrd ti è stato inviato!',
'password' => 'Le password devono essere almeno di sei carattere e devono corrispondere.',
'user' => "Non trovo nessun utente con l'email fornita.",
'token' => 'Il token di reset password non è valido.',
'sent' => 'Ti abbiamo inviato per email il link di reset della password!',
'reset' => 'La tua password è stata resettata!',
];

View File

@@ -2,77 +2,77 @@
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'accepted' => ':attribute deve essere accettatp.',
'active_url' => ':attribute non è un URL valido.',
'after' => ':attribute deve essere una data dopo il :date.',
'alpha' => ':attribute può contenere lettere.',
'alpha_dash' => ':attribute può contenere lettere, numeri, e trattini.',
'alpha_num' => ':attribute può contenere lettere and numeri.',
'array' => ':attribute deve essere un array.',
'before' => ':attribute deve essere una data prima di :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
'numeric' => ':attribute deve essere fra :min e :max.',
'file' => ':attribute deve essere fra :min e :max kilobytes.',
'string' => ':attribute deve essere fra :min e :max caratteri.',
'array' => ':attribute deve contenere fra :min e :max oggetti.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'email' => 'The :attribute must be a valid email address.',
'filled' => 'The :attribute field is required.',
'exists' => 'The selected :attribute is invalid.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'boolean' => ':attribute deve essere vero o falso.',
'confirmed' => ':attribute di conferma non corrisponde.',
'date' => ':attribute non è una data valida.',
'date_format' => ':attribute non corrisponde al formato :format.',
'different' => ':attribute e :other deveno essere differenti.',
'digits' => ':attribute deve essere :digits numeri.',
'digits_between' => ':attribute deve essere fra :min and :max numeri.',
'email' => ':attribute deve essere un indirizzo email valido.',
'filled' => ':attribute è obbligatorio.',
'exists' => ':attribute selezionato non è valido.',
'image' => ':attribute deve essere una immagine.',
'in' => ':attribute selezionato non è valido.',
'integer' => ':attribute deve essere un intero.',
'ip' => ':attribute deve essere un indirizzo IP valido.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
'numeric' => ':attribute non può essere più grande di :max.',
'file' => ':attribute non può essere più grande di :max kilobytes.',
'string' => ':attribute non può essere più grande di :max caratteri.',
'array' => ':attribute non può avere più di :max oggetti.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimes' => ':attribute deve essere un file di tipo: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
'numeric' => ':attribute deve essere almeno :min.',
'file' => ':attribute deve essere almeno :min kilobytes.',
'string' => ':attribute deve essere almeno :min caratteri.',
'array' => ':attribute deve avere almeno :min oggetti.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'not_in' => ':attribute selezionato non è valido.',
'numeric' => ':attribute deve essere un numero.',
'regex' => ':attribute ha un formato non valido.',
'required' => ':attribute è richiesto.',
'required_if' => ':attribute è richiesto quando :other è :value.',
'required_with' => ':attribute è richiesto quando :values è presente.',
'required_with_all' => ':attribute è richiesto quando :values è presente.',
'required_without' => ':attribute è richiesto quando :values non è presente.',
'required_without_all' => ':attribute è richiesto quando nessuno dei :values è presente.',
'same' => ':attribute e :other devono corrispondere.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
'numeric' => ':attribute deve essere :size.',
'file' => ':attribute deve essere :size kilobytes.',
'string' => ':attribute deve essere :size caratter.',
'array' => ':attribute deve contenere :size oggetti.',
],
'unique' => 'The :attribute has already been taken.',
'url' => 'The :attribute format is invalid.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => ':attribute è già stato utilizzato.',
'url' => ':attribute è in un formato non valido.',
'timezone' => ':attribute deve essere un valido fuso orario.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines

View File

@@ -64,7 +64,6 @@ return [
'password' => 'Wachtwoord',
'woops' => 'Oeps!!',
'theirisproblem' => 'Er is een probleem met je invoer.',
'login' => 'Login',
'e-mail' => 'E-mailadres',
'reg_new_member' => 'Registreren',
'this_account_is_currently_inactive' => 'Dit account is niet actief!',
@@ -182,7 +181,6 @@ return [
*/
'ban_lists' => 'Blokkeringslijst',
'ban_email' => 'Blokkeer E-mailadres',
'banlists' => 'Blokkeringslijst',
'ban_status' => 'Blokkeringsstatus',
'list_of_banned_emails' => 'Lijst van geblokkeerde e-mailadressen',
'edit_banned_email' => 'Bewerk geblokkeerde e-mailadressen',
@@ -853,7 +851,6 @@ return [
'the_associated_helptopic_has_been_deactivated' => 'Het gerelateerde help-onderwerp is uitgeschakeld',
'department_deleted_sucessfully' => 'Afdeling succesvol verwijderd',
'department_can_not_delete' => 'Afdeling kan niet verwijderd worden',
'select_a_department' => 'Selecteer een afdeling',
'make-default-department' => 'Maak hier de standaard afdeling van',
/*
|--------------------------------------
@@ -1187,6 +1184,7 @@ return [
'copyright' => 'Copyright',
'all_rights_reserved' => 'Alle rechten voorbehouden',
'powered_by' => 'Mogelijk gemaakt door',
'version' => 'Version',
/*
|------------------------------------------------
|Guest-User Page
@@ -1378,7 +1376,6 @@ return [
'post_comment' => 'Plaats reactie',
'plugin' => 'Plugin',
'edit_profile' => 'Bewerk profiel',
'you_are_here' => 'Je bent hier',
'Send' => 'Verstuur',
'no_article' => 'Geen artikel',
'profile_settings' => 'Profiel instellingen',
@@ -1608,7 +1605,6 @@ return [
'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.',
//updated 15-5-2017

View File

@@ -57,7 +57,6 @@ return [
'password' => 'Senha',
'woops' => 'Whoops!',
'theirisproblem' => 'Ocorreu um erro durante o login.',
'login' => 'Login',
'e-mail' => 'E-mail',
'reg_new_member' => 'Registrar uma nova associação.',
'this_account_is_currently_inactive' => 'Essa conta está inativa!',
@@ -160,7 +159,6 @@ return [
*/
'ban_lists' => 'Lista de bloqueio',
'ban_email' => 'E-mails bloqueados',
'banlists' => 'Lista de bloqueio',
'ban_status' => 'Status de bloqueio',
'list_of_banned_emails' => 'Lista de E-mails bloqueados',
'edit_banned_email' => 'Editar um bloqueio de E-mails',
@@ -789,7 +787,6 @@ return [
'the_associated_helptopic_has_been_deactivated' => 'O tópico de ajuda associado foi desativado',
'department_deleted_sucessfully' => 'Departamento deletado com sucesso',
'department_can_not_delete' => 'Departamento não pode ser deletado',
'select_a_department' => 'Selecione um departamento',
'make-default-department' => 'Criar departamento padrão',
/*
|--------------------------------------
@@ -1121,6 +1118,7 @@ return [
'copyright' => 'Copyright',
'all_rights_reserved' => 'Todos os direitos reservados',
'powered_by' => 'Distribuído por',
'version' => 'Version',
/*
|------------------------------------------------
|Guest-User Page
@@ -1316,7 +1314,6 @@ return [
'post_comment' => 'Enviar comentário',
'plugin' => 'Plugin',
'edit_profile' => 'Editar Perfil',
'you_are_here' => 'Você está aqui',
'Send' => 'ENVIAR',
'no_article' => 'Nenhum artigo',
'profile_settings' => 'Configurações de perfil',
@@ -1553,7 +1550,6 @@ return [
'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.',
//updated 15-5-2017

View File

@@ -34,7 +34,6 @@ return [
'password' => 'Пароль',
'woops' => 'Whoops!',
'theirisproblem' => 'There were some problems with your input.',
'login' => 'Login',
'e-mail' => 'E-mail',
'reg_new_member' => 'Register a new membership',
/*
@@ -111,7 +110,6 @@ return [
*/
'ban_lists' => 'Лист запретов',
'ban_email' => 'Запрет Email',
'banlists' => 'Листы запретов',
'ban_status' => 'Статус запретов',
/*
|--------------------------------------
@@ -721,6 +719,7 @@ return [
'copyright' => 'Copyright',
'all_rights_reserved' => 'Все права защищены',
'powered_by' => 'Разработано на',
'version' => 'Version',
/*
|------------------------------------------------
|Гостевая-Страница Пользователя
@@ -830,7 +829,6 @@ return [
/* Translation reuired */
/*****************************************************************************************/
'edit_profile' => 'Edit profile',
'you_are_here' => 'You are here',
'Send' => 'SEND',
'no_article' => 'No article',
'profile_settings' => 'Profile settings',
@@ -1062,7 +1060,6 @@ return [
'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.',
//updated 15-5-2017

View File

@@ -16,7 +16,7 @@ class="active"
@stop
<!-- header -->
@section('PageHeader')
<h1>{{ Lang::get('lang.staffs')}} </h1>
<h1>{{ Lang::get('lang.agents')}} </h1>
@stop
<!-- /header -->
<!-- breadcrumbs -->
@@ -40,7 +40,7 @@ class="active"
<div class="alert alert-success alert-dismissable">
<i class="fa fa-check-circle"></i>
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
{{Session::get('success')}}
{{Session::get('success')}}
</div>
@endif
<!-- failure message -->
@@ -116,4 +116,4 @@ class="active"
</div>
</div>
</div>
@stop
@stop

View File

@@ -16,7 +16,7 @@ class="active"
@stop
<!-- header -->
@section('PageHeader')
<h1>{{Lang::get('lang.staffs')}}</h1>
<h1>{{Lang::get('lang.groups')}}</h1>
@stop
<!-- /header -->
<!-- breadcrumbs -->
@@ -31,7 +31,7 @@ class="active"
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header">
<h2 class="box-title">{!! Lang::get('lang.groups') !!}</h2><a href="{{route('groups.create')}}" class="btn btn-primary pull-right"><span class="glyphicon glyphicon-plus"></span> &nbsp;{{Lang::get('lang.create_group')}}</a></div>
<h2 class="box-title">{!! Lang::get('lang.list_of_groups') !!}</h2><a href="{{route('groups.create')}}" class="btn btn-primary pull-right"><span class="glyphicon glyphicon-plus"></span> &nbsp;{{Lang::get('lang.create_group')}}</a></div>
<div class="box-body table-responsive">
<!-- check whether success or not -->
@if(Session::has('success'))
@@ -84,4 +84,4 @@ class="active"
</div>
</div>
</div>
@stop
@stop

View File

@@ -46,19 +46,25 @@ class="active"
<div class="box-body">
<div class="row">
<!-- email address -->
<div class="col-xs-4 form-group {{ $errors->has('email_address') ? 'has-error' : '' }}" id="email_address_error">
<div class="col-xs-6 form-group {{ $errors->has('email_address') ? 'has-error' : '' }}" id="email_address_error">
{!! Form::label('email_address',Lang::get('lang.email_address')) !!} <span class="text-red"> *</span>
{!! $errors->first('email_address', '<spam class="help-block">:message</spam>') !!}
{!! Form::text('email_address',null,['class' => 'form-control']) !!}
</div>
<!-- user name -->
<div class="col-xs-6 form-group {{ $errors->has('user_name') ? 'has-error' : '' }}" id="user_name_error">
{!! Form::label('user_name',Lang::get('lang.user_name')) !!} <span class="text-red"> *</span>
{!! $errors->first('user_name', '<spam class="help-block">:message</spam>') !!}
{!! Form::text('user_name',null,['class' => 'form-control']) !!}
</div>
<!-- Email name -->
<div class="col-xs-4 form-group {!! $errors->has('email_name') ? 'has-error' : ''!!}" id="email_name_error">
<div class="col-xs-6 form-group {!! $errors->has('email_name') ? 'has-error' : ''!!}" id="email_name_error">
{!! Form::label('email_name',Lang::get('lang.from_name')) !!} <span class="text-red"> *</span>
{!! $errors->first('email_name', '<spam class="help-block">:message</spam>') !!}
{!! Form::text('email_name',null,['class' => 'form-control', 'id' => 'email_name']) !!}
</div>
<!-- password -->
<div class="col-xs-4 form-group {!! $errors->has('password') ? 'has-error' : ''!!}" id="password_error">
<div class="col-xs-6 form-group {!! $errors->has('password') ? 'has-error' : ''!!}" id="password_error">
{!! Form::label('password',Lang::get('lang.password')) !!} <span class="text-red"> *</span>
{!! $errors->first('password', '<spam class="help-block">:message</spam>') !!}
<input type="password" name="password" class="form-control" id="password" value={!! $emails->password !!} >

View File

@@ -366,7 +366,7 @@
</div><!-- /.content-wrapper -->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 0.1
<b>{!! Lang::get('lang.version') !!}</b> 0.1
</div>
<strong>Copyright &copy; 2014-2015 <a href="http://www.ladybirdweb.com">Ladybird Web Solution</a>.</strong> All rights reserved.
</footer>
@@ -434,4 +434,4 @@
<script src="dist/js/tabby.js"></script>
</body>
</html>
</html>

View File

@@ -12,7 +12,7 @@
<link href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css" rel="stylesheet" type="text/css" />
<!-- Theme style -->
<link href="dist/css/AdminLTE.min.css" rel="stylesheet" type="text/css" />
<!-- AdminLTE Skins. Choose a skin from the css/skins
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link href="dist/css/skins/_all-skins.min.css" rel="stylesheet" type="text/css" />
<link href="http://www.jqueryscript.net/css/jquerysctipttop.css" rel="stylesheet" type="text/css">
@@ -22,7 +22,7 @@
<link href="http://www.jqueryscript.net/css/jquerysctipttop.css" rel="stylesheet" type="text/css">
<link href="dist/css/editor.css" type="text/css" rel="stylesheet"/>
<script src="dist/js/jquery-2.1.0.min.js"></script>
<script src="dist/js/jquery-2.1.0.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
@@ -121,19 +121,19 @@
<li class="header">TICKET INFORMATION</li>
<li>
<a href="">
<span>TICKET ID</span>
<span>TICKET ID</span>
</br><b>#123456</b>
</a>
</li>
<li>
<a href="">
<span>USER</span>
<span>USER</span>
</br><i class="fa fa-user"> </i> <b>Username</b>
</a>
</li>
<li>
<a href="">
<span>ASSIGNED TO</span>
<span>ASSIGNED TO</span>
</br> <b>Name</b>
</a>
</li>
@@ -252,7 +252,7 @@
<button type="button" class="btn btn-default"><i class="fa fa-print" style="color:blue;"> </i> Print</button>
<!-- </div> -->
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-exchange" style="color:teal;"> </i>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-exchange" style="color:teal;"> </i>
Change Status <span class="caret"></span>
</button>
<ul class="dropdown-menu">
@@ -261,7 +261,7 @@
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cogs" style="color:teal;"> </i>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cogs" style="color:teal;"> </i>
More <span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right">
@@ -276,25 +276,25 @@
<div class="box-body">
<div class="row">
<section class="content">
<div class="col-md-12">
<div class="col-md-12">
<div class="callout callout-info">
<div class="row">
<div class="col-md-3">
<div class="col-md-3">
<b>SLA Plan: </b> Default SLA Plan
</div>
<div class="col-md-3">
<div class="col-md-3">
<b>Create Date: </b> 12/03/2015 1:40 Pm
</div>
<div class="col-md-3">
<div class="col-md-3">
<b>Due Date: </b> 15/03/2015 1:05 pm
</div>
<div class="col-md-3">
<div class="col-md-3">
<b>Last Response: </b> 15/03/2015 1:05 pm
</div>
</div>
</div>
</div>
<div class="col-md-6">
</div>
<div class="col-md-6">
<table class="table table-hover">
<!-- <tr><th></th><th></th></tr> -->
<tr><td><b>Status:</b></td> <td>Open</td></tr>
@@ -304,7 +304,7 @@
</table>
<!-- </div> -->
</div>
<div class="col-md-6">
<div class="col-md-6">
<!-- <div class="callout callout-success"> -->
<table class="table table-hover">
<!-- <tr><th></th><th></th></tr> -->
@@ -315,7 +315,7 @@
</table>
</div>
<!-- </div> -->
</section>
</section>
</div>
</div>
@@ -358,7 +358,7 @@
<div class="col-md-10">
<input type="text" class="form-control" name="to" id="to" style="width:55%"/>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
@@ -372,7 +372,7 @@
<option>Last Message</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
@@ -380,13 +380,13 @@
<label>Reply Content</label>
</div>
<div class="col-md-10">
<textarea id="txtEditor"></textarea>
<textarea id="txtEditor"></textarea>
</div>
</div>
</div>
</form>
</form>
@@ -416,7 +416,7 @@
<div class="col-md-10">
<input type="text" class="form-control" name="to" id="to" style="width:55%" />
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
@@ -456,7 +456,7 @@
</div>
</form>
</form>
</div>
</div>
@@ -583,7 +583,7 @@
</div><!-- /.content-wrapper -->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 2.0
<b>{!! Lang::get('lang.version') !!}</b> 2.0
</div>
<strong>Copyright &copy; 2014-2015 <a href="http://www.ladybirdweb.com">Ladybird Web Solution</a>.</strong> All rights reserved.
</footer>

View File

@@ -197,7 +197,7 @@
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> {{$settings->version}}
<b>{!! Lang::get('lang.version') !!}</b> {{$settings->version}}
</div>
<strong>Copyright &copy; {{date("Y")}} <a href="{{$settings->website}}"> {{$settings->company_name}}</a>. Powered By <a href="http://www.faveohelpdesk.com">Faveo</a>.</strong>
</footer>
@@ -232,4 +232,4 @@
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js"></script>
<script src="{{asset('dist/js/blogs.js')}}"></script>
</body>
</html>
</html>

View File

@@ -5,7 +5,7 @@
<title>Faveo | HELP DESK</title>
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
<!-- faveo favicon -->
<link href="{{asset("lb-faveo/media/images/favicon.ico")}}" rel="shortcut icon">
<link href="{{asset("lb-faveo/media/images/favicon.ico")}}" rel="shortcut icon">
<!-- Bootstrap 3.3.2 -->
<link href="{{asset("lb-faveo/css/bootstrap.min.css")}}" rel="stylesheet" type="text/css" />
<!-- Font Awesome Icons -->
@@ -33,9 +33,9 @@
<!-- select2 -->
<link href="{{asset("lb-faveo/plugins/select2/select2.min.css")}}" rel="stylesheet" type="text/css">
<!-- Colorpicker -->
<link href="{{asset("lb-faveo/plugins/colorpicker/bootstrap-colorpicker.min.css")}}" rel="stylesheet" type="text/css" />
<script src="{{asset("lb-faveo/plugins/filebrowser/plugin.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/js/jquery-2.1.4.js")}}" type="text/javascript"></script>
@@ -246,7 +246,7 @@
<li @yield('email')><a href="{{url('getemail')}}"><i class="fa fa-at"></i>{!! Lang::get('lang.email-settings') !!}</a></li>
<li @yield('queue')><a href="{{ url('queue') }}"><i class="fa fa-upload"></i>{!! Lang::get('lang.queues') !!}</a></li>
<li @yield('diagnostics')><a href="{{ url('getdiagno') }}"><i class="fa fa-plus"></i>{!! Lang::get('lang.diagnostics') !!}</a></li>
<!-- <li><a href="#"><i class="fa fa-circle-o"></i> Auto Response</a></li> -->
<!-- <li><a href="#"><i class="fa fa-circle-o"></i> Rules/a></li> -->
<!-- <li><a href="#"><i class="fa fa-circle-o"></i> Breaklines</a></li> -->
@@ -367,7 +367,7 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> {!! Config::get('app.version') !!}
<b>{!! Lang::get('lang.version') !!}</b> {!! Config::get('app.version') !!}
</div>
<?php
$company = App\Model\helpdesk\Settings\Company::where('id', '=', '1')->first();
@@ -387,15 +387,15 @@
<script src="{{asset("lb-faveo/js/app.min.js")}}" type="text/javascript"></script>
<!-- iCheck -->
<script src="{{asset("lb-faveo/plugins/iCheck/icheck.min.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/plugins/datatables/dataTables.bootstrap.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/plugins/datatables/jquery.dataTables.js")}}" type="text/javascript"></script>
<!-- Page Script -->
<script src="{{asset("lb-faveo/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/js/jquery.dataTables1.10.10.min.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/plugins/datatables/dataTables.bootstrap.js")}}" type="text/javascript"></script>
<!-- Colorpicker -->
<script src="{{asset("lb-faveo/plugins/colorpicker/bootstrap-colorpicker.min.js")}}" ></script>
@@ -439,7 +439,7 @@
}
});
});</script>
<script src="{{asset("lb-faveo/js/tabby.js")}}"></script>
<!-- CK Editor -->
<script src="{{asset("lb-faveo/plugins/filebrowser/plugin.js")}}"></script>
@@ -448,15 +448,15 @@
</body>
<script>
$(function() {
$('input[type="checkbox"]').iCheck({
checkboxClass: 'icheckbox_flat-blue'
});
$('input[type="radio"]').iCheck({
radioClass: 'iradio_flat-blue'
});
});
});
</script>
</html>
</html>

View File

@@ -242,10 +242,10 @@
@if($replaceside==0)
@yield('sidebar')
<li class="header">{!! Lang::get('lang.Tickets') !!}</li>
<li @yield('inbox')>
<a href="{{ url('/ticket/inbox')}}" id="load-inbox">
<i class="fa fa-envelope"></i> <span>{!! Lang::get('lang.inbox') !!}</span> <small class="label pull-right bg-green">{{$tickets -> count()}}</small>
<i class="fa fa-envelope"></i> <span>{!! Lang::get('lang.inbox') !!}</span> <small class="label pull-right bg-green">{{$tickets -> count()}}</small>
</a>
</li>
<li @yield('myticket')>
@@ -266,7 +266,7 @@
<small class="label pull-right bg-green">{{$overdues->count()}}</small>
</a>
</li>
<li @yield('trash')>
<a href="{{url('trash')}}">
<i class="fa fa-trash-o"></i> <span>{!! Lang::get('lang.trash') !!}</span>
@@ -287,15 +287,15 @@
$segment.="/".$seg;
}
if(count($segments) > 2) {
$dept2 = $segments[1];
$dept2 = $segments[1];
$status2 = $segments[2];
} else {
$dept2 = '';
$dept2 = '';
$status2 = '';
}
?>
@foreach($department as $name=>$dept)
@foreach($department as $name=>$dept)
<li class="treeview @if($dept2 === $name) @yield('ticket-bar') @endif ">
<a href="#">
<i class="fa fa-folder-open"></i> <span>{!! $name !!}</span> <i class="fa fa-angle-left pull-right"></i>
@@ -307,7 +307,7 @@
</ul>
@endif
@endforeach
</li>
@endforeach
@else
@@ -337,7 +337,7 @@ $group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->first(
<ul class="nav navbar-nav">
<li id="bar" @yield('user')><a href="{{ url('user')}}" >{!! Lang::get('lang.user_directory') !!}</a></li></a></li>
<li id="bar" @yield('organizations')><a href="{{ url('organizations')}}" >{!! Lang::get('lang.organizations') !!}</a></li></a></li>
</ul>
</div>
<div class="tabs-pane @yield('ticket-bar')" id="tabC">
@@ -379,7 +379,7 @@ $group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->first(
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> {!! Config::get('app.version') !!}
<b>{!! Lang::get('lang.version') !!}</b> {!! Config::get('app.version') !!}
</div>
<strong>{!! Lang::get('lang.copyright') !!} &copy; {!! date('Y') !!} <a href="{!! $company->website !!}" target="_blank">{!! $company->company_name !!}</a>.</strong> {!! Lang::get('lang.all_rights_reserved') !!}. {!! Lang::get('lang.powered_by') !!} <a href="http://www.faveohelpdesk.com/" target="_blank">Faveo</a>
</footer>
@@ -523,19 +523,19 @@ $group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->first(
</script>
<script>
$(function() {
$('input[type="checkbox"]').iCheck({
checkboxClass: 'icheckbox_flat-blue'
});
$('input[type="radio"]:not(.not-apply)').iCheck({
radioClass: 'iradio_flat-blue'
});
});
});
</script>
<?php Event::fire('show.calendar.script', array()); ?>
<?php Event::fire('load-calendar-scripts', array()); ?>
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -21,21 +21,21 @@
<link href="{{asset("lb-faveo/plugins/iCheck/flat/blue.css")}}" rel="stylesheet" type="text/css" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<link href="{{asset("lb-faveo/css/tabby.css")}}" rel="stylesheet" type="text/css"/>
<link href="{{asset("lb-faveo/css/jquerysctipttop.css")}}" rel="stylesheet" type="text/css"/>
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<link href="{{asset("lb-faveo/css/editor.css")}}" rel="stylesheet" type="text/css"/>
<link href="{{asset("lb-faveo/css/jquery.ui.css")}}" rel="stylesheet" rel="stylesheet"/>
<link href="{{asset("lb-faveo/plugins/datatables/dataTables.bootstrap.css")}}" rel="stylesheet" type="text/css"/>
<link href="{{asset("lb-faveo/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css")}}" rel="stylesheet" type="text/css"/>
<link href="{{asset("lb-faveo/css/faveo-css.css")}}" rel="stylesheet" type="text/css" />
<link href="{{asset("lb-faveo/css/notification-style.css")}}" rel="stylesheet" type="text/css" >
<link href="{{asset("lb-faveo/css/jquery.rating.css")}}" rel="stylesheet" type="text/css" />
<!-- Select2 -->
<link href="{{asset("lb-faveo/plugins/select2/select2.min.css")}}" rel="stylesheet" type="text/css" />
@@ -51,7 +51,7 @@
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script src="{{asset("lb-faveo/js/jquery-2.1.4.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/js/jquery2.1.1.min.js")}}" type="text/javascript"></script>
@yield('HeadInclude')
@@ -262,7 +262,7 @@
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->get();
$followup_ticket= App\Model\helpdesk\Ticket\Tickets::where('status', '1')->where('follow_up', '1')->get();
$closingapproval = App\Model\helpdesk\Ticket\Tickets::where('status', '7')->get();
$deleted = App\Model\helpdesk\Ticket\Tickets::where('status', '5')->get();
} elseif (Auth::user()->role == 'agent') {
//$inbox = App\Model\helpdesk\Ticket\Tickets::where('dept_id','',Auth::user()->primary_dpt)->get();
@@ -271,7 +271,7 @@
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->where('dept_id', '=', Auth::user()->primary_dpt)->get();
$followup_ticket= App\Model\helpdesk\Ticket\Tickets::where('status', '1')->where('follow_up', '1')->get();
$closingapproval = App\Model\helpdesk\Ticket\Tickets::where('status', '7')->get();
$deleted = App\Model\helpdesk\Ticket\Tickets::where('status', '5')->where('dept_id', '=', Auth::user()->primary_dpt)->get();
}
if (Auth::user()->role == 'agent') {
@@ -305,7 +305,7 @@
?>
<li @yield('inbox')>
<a href="{{ url('/ticket/inbox')}}" id="load-inbox">
<i class="fa fa-envelope"></i> <span>{!! Lang::get('lang.inbox') !!}</span> <small class="label pull-right bg-green"><?php echo count($tickets); ?></small>
<i class="fa fa-envelope"></i> <span>{!! Lang::get('lang.inbox') !!}</span> <small class="label pull-right bg-green"><?php echo count($tickets); ?></small>
</a>
</li>
<li @yield('myticket')>
@@ -422,7 +422,7 @@
<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('approvel')><a href="{{ url('ticket/approval/closed')}}" >{!! Lang::get('lang.approval') !!}</a></li>--}}
<li id="bar" @yield('closed')><a href="{{ url('/ticket/closed')}}" >{!! Lang::get('lang.closed') !!}</a></li>
@@ -459,14 +459,14 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> {!! Config::get('app.version') !!}
<b>{!! Lang::get('lang.version') !!}</b> {!! Config::get('app.version') !!}
</div>
<strong>{!! Lang::get('lang.copyright') !!} &copy; {!! date('Y') !!} <a href="{!! $company->website !!}" target="_blank">{!! $company->company_name !!}</a>.</strong> {!! Lang::get('lang.all_rights_reserved') !!}. {!! Lang::get('lang.powered_by') !!} <a href="http://www.faveohelpdesk.com/" target="_blank">Faveo</a>
</footer>
</div><!-- ./wrapper -->
<script src="{{asset("lb-faveo/js/ajax-jquery.min.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/js/bootstrap-datetimepicker4.7.14.min.js")}}" type="text/javascript"></script>
<!-- Bootstrap 3.3.2 JS -->
<script src="{{asset("lb-faveo/js/bootstrap.min.js")}}" type="text/javascript"></script>
@@ -481,9 +481,9 @@
<script src="{{asset("lb-faveo/plugins/iCheck/icheck.min.js")}}" type="text/javascript"></script>
<!-- jquery ui -->
<script src="{{asset("lb-faveo/js/jquery.ui.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/plugins/datatables/dataTables.bootstrap.js")}}" type="text/javascript"></script>
<script src="{{asset("lb-faveo/plugins/datatables/jquery.dataTables.js")}}" type="text/javascript"></script>
<!-- Page Script -->
<script src="{{asset("lb-faveo/js/jquery.dataTables1.10.10.min.js")}}" type="text/javascript" ></script>
@@ -602,19 +602,19 @@
</script>
<!--<script>
$(function() {
$('input[type="checkbox"]').iCheck({
checkboxClass: 'icheckbox_flat-blue'
});
$('input[type="radio"]:not(.not-apply)').iCheck({
radioClass: 'iradio_flat-blue'
});
});
});
</script>-->
<?php Event::fire('show.calendar.script', array()); ?>
<?php Event::fire('load-calendar-scripts', array()); ?>
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -233,7 +233,7 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> {{$settings->version}}
<b>{!! Lang::get('lang.version') !!}</b> {{$settings->version}}
</div>
<strong>Copyright &copy; {{date("Y")}} <a href="{{$settings->website}}"> {{$settings->company_name}}</a>. Powered By <a href="http://www.faveohelpdesk.com">Faveo</a>.</strong>
</footer>
@@ -267,4 +267,4 @@
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -69,7 +69,7 @@
<img src="{{ Gravatar::src(Auth::user()->email) }}" class="user-image" alt="User Image">
@endif
<span class="hidden-xs">{!! Auth::user()->first_name." ".Auth::user()->last_name !!}</span>
@endif
@endif
</a>
<ul class="dropdown-menu">
<!-- User image -->
@@ -87,7 +87,7 @@
@endif
</li>
<!-- Menu Footer-->
<li class="user-footer" style="background-color:#1a2226;">
<div class="pull-left">
<a href="{{url('admin-profile')}}" class="btn btn-info btn-sm"><b>Profile</b></a>
@@ -163,14 +163,14 @@
<li @yield('myticket')>
<a href="{{url('ticket/myticket')}}">
<i class="fa fa-user"></i> <span>My Tickets</span>
<small class="label pull-right bg-green">{{count($myticket) }}</small>
</a>
</li>
<li>
<a href="{{url('unassigned')}}">
<i class="fa fa-th"></i> <span>Unassigned</span>
<small class="label pull-right bg-green">{{count($unassigned)}}</small>
</a>
</li>
@@ -255,9 +255,9 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 0.1
<b>{!! Lang::get('lang.version') !!}</b> 0.1
</div>
<?php
<?php
$company = App\Model\helpdesk\Settings\Company::where('id','=','1')->first();
?>
<strong>Copyright &copy; {!! date('Y') !!} <a href="{!! $company->website !!}">{!! $company->company_name !!}</a>.</strong> All rights reserved. Powered by <a href="http://www.faveohelpdesk.com/" target="blank">Faveo</a>
@@ -346,4 +346,4 @@ $(function() {
</script>
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -309,7 +309,7 @@ $group = App\Model\helpdesk\Agent\Groups::where('name', '=', $agent_group)->wher
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 0.1
<b>{!! Lang::get('lang.version') !!}</b> 0.1
</div>
<strong>Copyright &copy; {!! date('Y') !!} <a href="{!! $company->website !!}">{!! $company->company_name !!}</a>.</strong> All rights reserved. Powered by <a href="http://www.faveohelpdesk.com/">Faveo</a>
</footer>
@@ -401,4 +401,4 @@ $(function() {
</script>
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -119,7 +119,7 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 0.1
<b>{!! Lang::get('lang.version') !!}</b> 0.1
</div>
<strong>Copyright &copy; {!! date('Y') !!} <a href="{!! $company->website !!}">{!! $company->company_name !!}</a>.</strong> All rights reserved. Powered by <a href="http://www.faveohelpdesk.com/">Faveo</a>
</footer>
@@ -200,4 +200,4 @@ $(function() {
@yield('FooterInclude')
</body>
</html>
</html>

View File

@@ -372,7 +372,7 @@
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 2.0
<b>{!! Lang::get('lang.version') !!}</b> 2.0
</div>
<strong>Copyright &copy; 2014-{!! date('Y') !!} <a href="http://almsaeedstudio.com">Almsaeed Studio</a>.</strong> All rights reserved.
</footer>
@@ -391,4 +391,4 @@
<!-- AdminLTE for demo purposes -->
<script src="../../dist/js/demo.js" type="text/javascript"></script>
</body>
</html>
</html>

View File

@@ -184,7 +184,7 @@ if ($company != null) {
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 0.1
<b>{!! Lang::get('lang.version') !!}</b> 0.1
</div>
<strong>Copyright &copy; {!! date('Y') !!} <a href="{!! $company->website !!}">{!! $company->company_name !!}</a>.</strong> All rights reserved. Powered by <a href="http://www.faveohelpdesk.com/">Faveo</a>
</footer>
@@ -267,4 +267,4 @@ $(function() {
</script>
@yield('FooterInclude')
</body>
</html>
</html>