Compare commits
10 Commits
b460b2ecc6
...
e075da48fd
Author | SHA1 | Date | |
---|---|---|---|
e075da48fd | |||
![]() |
6568aa45f8 | ||
![]() |
1415a37b5a | ||
![]() |
44d323bd3d | ||
![]() |
713868c775 | ||
![]() |
e2608e6851 | ||
![]() |
09e2078c81 | ||
![]() |
e8f61f16d5 | ||
![]() |
ac7fc33df2 | ||
![]() |
d0c51e89ff |
29
.github/ISSUE_TEMPLATE/bug-report--community-product--.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE/bug-report--community-product--.md
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: Bug report (Community Product).
|
||||
about: Create a report to help us improve our community Product
|
||||
title: ''
|
||||
labels: Customer reported Bug, Open Source
|
||||
assignees: bhanu2217, RafficMohammed
|
||||
|
||||
---
|
||||
|
||||
- Faveo Version : #.#.#
|
||||
- Product Name :
|
||||
- PHP version :
|
||||
- Database Driver & Version :
|
||||
- Server specification :
|
||||
|
||||
|
||||
#### Description:
|
||||
|
||||
|
||||
#### Steps To Reproduce:
|
||||
|
||||
|
||||
|
||||
#### Downloaded from
|
||||
- [ ] master-branch
|
||||
|
||||
- [ ] development-branch
|
||||
|
||||
- [ ] release-tag
|
18
.github/ISSUE_TEMPLATE/bug-report--paid-product-.md
vendored
Normal file
18
.github/ISSUE_TEMPLATE/bug-report--paid-product-.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Bug report (Paid Product)
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: Customer reported Bug, Paid
|
||||
assignees: bhanu2217, RafficMohammed
|
||||
|
||||
---
|
||||
|
||||
- Faveo Version : #.#.#
|
||||
- Product Name :
|
||||
- Server specification :
|
||||
|
||||
|
||||
#### Description:
|
||||
|
||||
|
||||
#### Steps To Reproduce:
|
9
.github/issue_template.md
vendored
9
.github/issue_template.md
vendored
@@ -1,8 +1,15 @@
|
||||
- Faveo Version : #.#.#
|
||||
- Product Name :
|
||||
- PHP version :
|
||||
- Database Driver & Version :
|
||||
- Server specification :
|
||||
|
||||
#### Product Type
|
||||
- [ ] Open Source
|
||||
|
||||
- [ ] Paid
|
||||
|
||||
|
||||
#### Description:
|
||||
|
||||
|
||||
@@ -16,3 +23,5 @@
|
||||
- [ ] development-branch
|
||||
|
||||
- [ ] release-tag
|
||||
|
||||
- [ ] Billing
|
||||
|
45
.lando.yml
Normal file
45
.lando.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
name: faveo-laravel
|
||||
recipe: laravel
|
||||
|
||||
config:
|
||||
webroot: public
|
||||
php: "8.1"
|
||||
|
||||
services:
|
||||
appserver:
|
||||
type: php:8.1
|
||||
overrides:
|
||||
environment:
|
||||
APP_ENV: local
|
||||
APP_DEBUG: true
|
||||
APP_KEY: base64:u0DummyKeyForDev123456==
|
||||
DB_CONNECTION: mysql
|
||||
DB_HOST: host.docker.internal # nếu bạn dùng MySQL bên ngoài container
|
||||
DB_PORT: 3306
|
||||
DB_DATABASE: faveo
|
||||
DB_USERNAME: root
|
||||
DB_PASSWORD: HP_LE1851w
|
||||
MAIL_MAILER: smtp
|
||||
MAIL_HOST: smtp.gmail.com
|
||||
MAIL_PORT: 587
|
||||
MAIL_USERNAME: pvcuong1965@gmail.com
|
||||
MAIL_PASSWORD: nwbdxhefdfgjyjtn
|
||||
MAIL_ENCRYPTION: ssl
|
||||
MAIL_FROM_ADDRESS: vcuong1965@gmail.com
|
||||
MAIL_FROM_NAME: "Faveo Helpdesk"
|
||||
|
||||
mailhog:
|
||||
type: mailhog
|
||||
|
||||
tooling:
|
||||
artisan:
|
||||
service: appserver
|
||||
composer:
|
||||
service: appserver
|
||||
mysql:
|
||||
service: database
|
||||
|
||||
proxy:
|
||||
appserver:
|
||||
- faveo.lndo.site
|
||||
|
20
README.md
20
README.md
@@ -46,6 +46,10 @@ To run Faveo your host just needs a couple of things:
|
||||
* PHP Extensions: Imap, Mbstring, Mcrypt, OpenSSL, PDO, Tokenizer, XML, Zip
|
||||
* Web Server Extension: Pretty URLs or Search Engine Friendly URLs have to be enabled in your web server configuration
|
||||
|
||||
Installation Guide
|
||||
--------------------------
|
||||
The installation steps for Faveo Community is same as that of Faveo. Please refer to our <a href="https://docs.faveohelpdesk.com/" target="_blank">Installation Guide</a> here.
|
||||
|
||||
Faveo Web Hosting
|
||||
--------------------------
|
||||
<a href="http://www.store.ladybirdwebhost.com/" target="_blank">Ladybird Web Host</a> Offers hosting with minimum requirement to host Faveo web application. Faveo has been tested on Ladybird Web Host servers & works very well in their server environment. All web hosting packages offered by Ladybird Web Host come with 30 day money back gurantee.</p>
|
||||
@@ -67,16 +71,11 @@ Road Map for Community Edition
|
||||
--------------------------
|
||||
See what all features are going to be part of upcoming releases <a href="http://www.faveohelpdesk.com/faveo-helpdesk-road-map" target="_blank">here</a>
|
||||
|
||||
Faveo Probe
|
||||
--------------------------
|
||||
Helps verify whether your server can run Faveo or not.
|
||||
<a href="https://github.com/ladybirdweb/faveo-probe" target="_blank">Download here</a>
|
||||
|
||||
Faveo Community
|
||||
--------------------------
|
||||
Join Faveo discussion group and stay tuned to latest updates.<br/>
|
||||
<li><a href="https://www.linkedin.com/groups/8429668" target="_blank">Join us on LinkedIn</a></li>
|
||||
<li><a href="https://join.slack.com/t/faveocommunity/shared_invite/enQtNDU0NTcxNTA0ODIwLTAzN2VkNDhjMDFmNGJmNmUwYTkxYzE4OGI3ZDUyZGQ2ZDY5NjU2YmY4ZjU3YWNlNTA3N2JkOTk1ZmNiM2ZlY2U" target="_blank">Join us on Slack</a></li>
|
||||
* Join us on <a href="https://www.linkedin.com/groups/8429668" target="_blank">LinkedIn</a>
|
||||
* Join us on <a href="https://join.slack.com/t/faveocommunity/shared_invite/enQtNDU0NTcxNTA0ODIwLTAzN2VkNDhjMDFmNGJmNmUwYTkxYzE4OGI3ZDUyZGQ2ZDY5NjU2YmY4ZjU3YWNlNTA3N2JkOTk1ZmNiM2ZlY2U" target="_blank">Slack</a>
|
||||
|
||||
Support the community edition
|
||||
--------------------------
|
||||
@@ -105,9 +104,10 @@ Check mark versions are supported with security patches.
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 2.0.1 | :white_check_mark: |
|
||||
| 2.0.0 | :x: |
|
||||
| < 1.0 | :x: |
|
||||
| 2.0.3 | :white_check_mark: |
|
||||
| 2.0.2 | :x: |
|
||||
| 2.0.1 | :x: |
|
||||
| < 2.0 | :x: |
|
||||
|
||||
## Supported Updates
|
||||
|
||||
|
@@ -743,6 +743,7 @@ class ApiController extends Controller
|
||||
|
||||
$url = $url.'/api/v1/helpdesk/check-url?api_key='.$this->request->input('api_key').'&token='.\Config::get('app.token');
|
||||
$result = $this->CallGetApi($url);
|
||||
|
||||
//dd($result);
|
||||
return response()->json(compact('result'));
|
||||
} catch (\Exception $ex) {
|
||||
|
@@ -42,6 +42,7 @@ class ApiExceptAuthController extends Controller
|
||||
$url = $url.'api/v1/helpdesk/check-url';
|
||||
//return $url;
|
||||
$result = $this->CallGetApi($url);
|
||||
|
||||
// dd($result);
|
||||
return response()->json(compact('result'));
|
||||
} catch (\Exception $ex) {
|
||||
|
@@ -64,6 +64,7 @@ class TokenAuthController extends Controller
|
||||
}
|
||||
|
||||
$user_id = \Auth::user();
|
||||
|
||||
// if no errors are encountered we can return a JWT
|
||||
return response()->json(compact('token', 'user_id'));
|
||||
}
|
||||
@@ -91,6 +92,7 @@ class TokenAuthController extends Controller
|
||||
|
||||
return response()->json(compact('error'));
|
||||
}
|
||||
|
||||
//dd($user);
|
||||
return response()->json(compact('user'));
|
||||
}
|
||||
|
@@ -235,6 +235,7 @@ class AgentController extends Controller
|
||||
foreach ($requests as $req) {
|
||||
DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]);
|
||||
}
|
||||
|
||||
//Todo For success and failure conditions
|
||||
try {
|
||||
if ($request->input('country_code') != '' or $request->input('country_code') != null) {
|
||||
@@ -304,6 +305,7 @@ class AgentController extends Controller
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
||||
}
|
||||
|
||||
// return random string
|
||||
return $randomString;
|
||||
}
|
||||
|
@@ -87,6 +87,7 @@ class BanlistController extends Controller
|
||||
$use->ban = $request->input('ban');
|
||||
$use->internal_note = $request->input('internal_note');
|
||||
$use->save();
|
||||
|
||||
// $user->create($request->input())->save();
|
||||
return redirect('banlist')->with('success', Lang::get('lang.email_banned_sucessfully'));
|
||||
} else {
|
||||
|
@@ -380,6 +380,7 @@ class EmailsController extends Controller
|
||||
}
|
||||
//dd($ex->getMessage());
|
||||
loging('mail-config', $message);
|
||||
|
||||
//Log::error($ex->getMessage());
|
||||
return $this->jsonResponse('fails', $message);
|
||||
}
|
||||
|
@@ -196,6 +196,7 @@ class FormController extends Controller
|
||||
//dd($form);
|
||||
if ($form) {
|
||||
$fields = $form->fields();
|
||||
|
||||
//dd($fields);
|
||||
return view('themes.default1.admin.helpdesk.manage.form.edit', compact('form', 'fields', 'select_forms'));
|
||||
}
|
||||
@@ -215,6 +216,7 @@ class FormController extends Controller
|
||||
//dd($form);
|
||||
if ($form) {
|
||||
$fields = $form->fields();
|
||||
|
||||
//dd($fields);
|
||||
return view('themes.default1.admin.helpdesk.manage.form.add-child', compact('form', 'fields', 'select_forms'));
|
||||
}
|
||||
|
@@ -168,9 +168,11 @@ class GroupController extends Controller
|
||||
//Updating admin_notes field
|
||||
$adminNotes = $request->input('admin_notes');
|
||||
$var->admin_notes = $adminNotes;
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$var->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('groups')->with('success', Lang::get('lang.group_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -198,9 +200,11 @@ class GroupController extends Controller
|
||||
}
|
||||
$group_assign_department->where('group_id', $id)->delete();
|
||||
$groups = $group->whereId($id)->first();
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$groups->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('groups')->with('success', Lang::get('lang.group_deleted_successfully'));
|
||||
} catch (Exception $e) {
|
||||
|
@@ -118,6 +118,7 @@ class HelptopicController extends Controller
|
||||
}
|
||||
/* Check whether function success or not */
|
||||
$topic->fill($request->except('custom_form', 'auto_assign'))->save();
|
||||
|
||||
// $topics->fill($request->except('custom_form','auto_assign'))->save();
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_created_successfully'));
|
||||
@@ -192,6 +193,7 @@ class HelptopicController extends Controller
|
||||
->where('id', '=', 1)
|
||||
->update(['help_topic' => $id]);
|
||||
}
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -238,9 +240,11 @@ class HelptopicController extends Controller
|
||||
}
|
||||
$message = $ticket.$email;
|
||||
$topics = $topic->whereId($id)->first();
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$topics->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_deleted_successfully').$message);
|
||||
} catch (Exception $e) {
|
||||
|
@@ -74,6 +74,7 @@ class SettingsController extends Controller
|
||||
try {
|
||||
/* fetch the values of company from company table */
|
||||
$companys = $company->whereId('1')->first();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
||||
} catch (Exception $e) {
|
||||
@@ -104,9 +105,11 @@ class SettingsController extends Controller
|
||||
if ($request->input('use_logo') == null) {
|
||||
$companys->use_logo = '0';
|
||||
}
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$companys->fill($request->except('logo'))->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getcompany')->with('success', Lang::get('lang.company_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -167,6 +170,7 @@ class SettingsController extends Controller
|
||||
$email_mandatory = $common_settings->select('status')
|
||||
->where('option_name', '=', 'email_mandatory')
|
||||
->first();
|
||||
|
||||
/* Direct to System Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time', 'common_setting', 'send_otp', 'email_mandatory'));
|
||||
} catch (Exception $e) {
|
||||
@@ -215,6 +219,7 @@ class SettingsController extends Controller
|
||||
$sett->status = $itil;
|
||||
$sett->save();
|
||||
}
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getsystem')->with('success', Lang::get('lang.system_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -242,6 +247,7 @@ class SettingsController extends Controller
|
||||
$slas = $sla->get();
|
||||
/* Fetch the values from Help_topic table */
|
||||
$topics = $topic->get();
|
||||
|
||||
/* Direct to Ticket Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
||||
} catch (Exception $e) {
|
||||
@@ -276,6 +282,7 @@ class SettingsController extends Controller
|
||||
$tickets->collision_avoid = $request->input('collision_avoid');
|
||||
/* Check whether function success or not */
|
||||
$tickets->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getticket')->with('success', Lang::get('lang.ticket_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -302,6 +309,7 @@ class SettingsController extends Controller
|
||||
$templates = $template->get();
|
||||
/* Fetch the values from Emails table */
|
||||
$emails1 = $email1->get();
|
||||
|
||||
/* Direct to Email Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
||||
} catch (Exception $e) {
|
||||
@@ -334,6 +342,7 @@ class SettingsController extends Controller
|
||||
$emails->attachment = $request->input('attachment');
|
||||
/* Check whether function success or not */
|
||||
$emails->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getemail')->with('success', Lang::get('lang.email_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -435,6 +444,7 @@ class SettingsController extends Controller
|
||||
}
|
||||
$work->save();
|
||||
$this->saveConditions();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
||||
} catch (Exception $e) {
|
||||
@@ -455,6 +465,7 @@ class SettingsController extends Controller
|
||||
try {
|
||||
/* fetch the values of responder from responder table */
|
||||
$responders = $responder->whereId('1')->first();
|
||||
|
||||
/* Direct to Responder Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
||||
} catch (Exception $e) {
|
||||
@@ -484,6 +495,7 @@ class SettingsController extends Controller
|
||||
/* fill the values to coompany table */
|
||||
/* Check whether function success or not */
|
||||
$responders->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getresponder')->with('success', Lang::get('lang.auto_response_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -504,6 +516,7 @@ class SettingsController extends Controller
|
||||
try {
|
||||
/* fetch the values of alert from alert table */
|
||||
$alerts = $alert->whereId('1')->first();
|
||||
|
||||
/* Direct to Alert Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
||||
} catch (Exception $e) {
|
||||
@@ -572,6 +585,7 @@ class SettingsController extends Controller
|
||||
/* fill the values to coompany table */
|
||||
/* Check whether function success or not */
|
||||
$alerts->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getalert')->with('success', Lang::get('lang.alert_&_notices_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -615,6 +629,7 @@ class SettingsController extends Controller
|
||||
try {
|
||||
/* fetch the values of company from company table */
|
||||
$statuss = \DB::table('ticket_status')->get();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
||||
} catch (Exception $e) {
|
||||
@@ -635,6 +650,7 @@ class SettingsController extends Controller
|
||||
try {
|
||||
/* fetch the values of company from company table */
|
||||
$status = \DB::table('ticket_status')->where('id', '=', $id)->first();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.status-edit', compact('status'));
|
||||
} catch (Exception $e) {
|
||||
@@ -667,6 +683,7 @@ class SettingsController extends Controller
|
||||
}
|
||||
$statuss->sort = $request->input('sort');
|
||||
$statuss->save();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -698,6 +715,7 @@ class SettingsController extends Controller
|
||||
}
|
||||
$statuss->sort = $request->input('sort');
|
||||
$statuss->save();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_created_successfully'));
|
||||
} catch (Exception $ex) {
|
||||
@@ -718,6 +736,7 @@ class SettingsController extends Controller
|
||||
if ($id > 5) {
|
||||
/* fetch the values of company from company table */
|
||||
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_deleted'));
|
||||
} else {
|
||||
|
@@ -109,6 +109,7 @@ class SettingsController2 extends Controller
|
||||
try {
|
||||
/* fetch the values of company from company table */
|
||||
$statuss = \DB::table('ticket_status')->get();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
||||
} catch (Exception $e) {
|
||||
@@ -141,6 +142,7 @@ class SettingsController2 extends Controller
|
||||
}
|
||||
$statuss->sort = Input::get('sort');
|
||||
$statuss->save();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', 'Status has been updated!');
|
||||
} catch (Exception $e) {
|
||||
@@ -164,6 +166,7 @@ class SettingsController2 extends Controller
|
||||
}
|
||||
$statuss->sort = Input::get('sort');
|
||||
$statuss->save();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', 'Status has been created!');
|
||||
// } catch (Exception $ex) {
|
||||
@@ -177,6 +180,7 @@ class SettingsController2 extends Controller
|
||||
if ($id > 5) {
|
||||
/* fetch the values of company from company table */
|
||||
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return redirect()->back()->with('success', 'Status has been deleted');
|
||||
} else {
|
||||
@@ -200,6 +204,7 @@ class SettingsController2 extends Controller
|
||||
try {
|
||||
/* fetch the values of company from company table */
|
||||
$companys = $company->whereId('1')->first();
|
||||
|
||||
/* Direct to Company Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
||||
} catch (Exception $e) {
|
||||
@@ -230,9 +235,11 @@ class SettingsController2 extends Controller
|
||||
if ($request->input('use_logo') == null) {
|
||||
$companys->use_logo = '0';
|
||||
}
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$companys->fill($request->except('logo'))->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getcompany')->with('success', 'Company Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
@@ -283,6 +290,7 @@ class SettingsController2 extends Controller
|
||||
$departments = $department->get();
|
||||
/* Fetch the values from Timezones table */
|
||||
$timezones = $timezone->get();
|
||||
|
||||
/* Direct to System Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time'));
|
||||
} catch (Exception $e) {
|
||||
@@ -308,6 +316,7 @@ class SettingsController2 extends Controller
|
||||
/* fill the values to coompany table */
|
||||
/* Check whether function success or not */
|
||||
$systems->fill($request->input())->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getsystem')->with('success', 'System Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
@@ -335,6 +344,7 @@ class SettingsController2 extends Controller
|
||||
$slas = $sla->get();
|
||||
/* Fetch the values from Help_topic table */
|
||||
$topics = $topic->get();
|
||||
|
||||
/* Direct to Ticket Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
||||
} catch (Exception $e) {
|
||||
@@ -369,6 +379,7 @@ class SettingsController2 extends Controller
|
||||
$tickets->collision_avoid = $request->input('collision_avoid');
|
||||
/* Check whether function success or not */
|
||||
$tickets->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getticket')->with('success', 'Ticket Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
@@ -395,6 +406,7 @@ class SettingsController2 extends Controller
|
||||
$templates = $template->get();
|
||||
/* Fetch the values from Emails table */
|
||||
$emails1 = $email1->get();
|
||||
|
||||
/* Direct to Email Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
||||
} catch (Exception $e) {
|
||||
@@ -427,6 +439,7 @@ class SettingsController2 extends Controller
|
||||
$emails->attachment = $request->input('attachment');
|
||||
/* Check whether function success or not */
|
||||
$emails->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getemail')->with('success', 'Email Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
@@ -485,6 +498,7 @@ class SettingsController2 extends Controller
|
||||
$emails->notification_cron = 0;
|
||||
}
|
||||
$emails->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
||||
} catch (Exception $e) {
|
||||
@@ -556,6 +570,7 @@ class SettingsController2 extends Controller
|
||||
try {
|
||||
/* fetch the values of responder from responder table */
|
||||
$responders = $responder->whereId('1')->first();
|
||||
|
||||
/* Direct to Responder Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
||||
} catch (Exception $e) {
|
||||
@@ -585,6 +600,7 @@ class SettingsController2 extends Controller
|
||||
/* fill the values to coompany table */
|
||||
/* Check whether function success or not */
|
||||
$responders->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getresponder')->with('success', 'Responder Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
@@ -605,6 +621,7 @@ class SettingsController2 extends Controller
|
||||
try {
|
||||
/* fetch the values of alert from alert table */
|
||||
$alerts = $alert->whereId('1')->first();
|
||||
|
||||
/* Direct to Alert Settings Page */
|
||||
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
||||
} catch (Exception $e) {
|
||||
@@ -673,6 +690,7 @@ class SettingsController2 extends Controller
|
||||
/* fill the values to coompany table */
|
||||
/* Check whether function success or not */
|
||||
$alerts->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('getalert')->with('success', 'Alert Updated Successfully');
|
||||
} catch (Exception $e) {
|
||||
|
@@ -45,6 +45,7 @@ class SlaController extends Controller
|
||||
try {
|
||||
/* Declare a Variable $slas to store all Values From Sla_plan Table */
|
||||
$slas = $sla->get();
|
||||
|
||||
/* Listing the values From Sla_plan Table */
|
||||
return view('themes.default1.admin.helpdesk.manage.sla.index', compact('slas'));
|
||||
} catch (Exception $e) {
|
||||
@@ -81,6 +82,7 @@ class SlaController extends Controller
|
||||
/* Fill the request values to Sla_plan Table */
|
||||
/* Check whether function success or not */
|
||||
$sla->fill($request->input())->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('sla')->with('success', Lang::get('lang.sla_plan_created_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -196,9 +198,11 @@ class SlaController extends Controller
|
||||
$message = $ticket.$dept.$topic;
|
||||
/* Delete a perticular field from the database by delete() using Id */
|
||||
$slas = Sla_plan::whereId($id)->first();
|
||||
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$slas->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('sla')->with('success', Lang::get('lang.sla_plan_deleted_successfully').$message);
|
||||
} catch (Exception $e) {
|
||||
|
@@ -150,6 +150,7 @@ class TeamController extends Controller
|
||||
$users = DB::table('team_assign_agent')->select('team_assign_agent.id', 'team_assign_agent.team_id', 'users.user_name', 'users.first_name', 'users.last_name', 'users.active', 'users.assign_group', 'users.primary_dpt', 'users.role')
|
||||
->join('users', 'users.id', '=', 'team_assign_agent.agent_id')
|
||||
->where('team_assign_agent.team_id', '=', $id);
|
||||
|
||||
// ->get();
|
||||
// dd($users);
|
||||
return \Datatable::query($users)
|
||||
@@ -219,6 +220,7 @@ class TeamController extends Controller
|
||||
}
|
||||
// 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'));
|
||||
} catch (Exception $e) {
|
||||
@@ -250,10 +252,12 @@ class TeamController extends Controller
|
||||
$alert = $request->input('assign_alert');
|
||||
$teams->assign_alert = $alert;
|
||||
$teams->save(); //saving check box
|
||||
|
||||
//updating whole field
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
$teams->fill($request->except('team_lead'))->save();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('teams')->with('success', Lang::get('lang.teams_updated_successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -279,6 +283,7 @@ class TeamController extends Controller
|
||||
$tickets = DB::table('tickets')->where('team_id', '=', $id)->update(['team_id' => null]);
|
||||
/* Check whether function success or not */
|
||||
$teams->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('teams')->with('success', Lang::get('lang.teams_deleted_successfully'));
|
||||
} catch (Exception $e) {
|
||||
|
@@ -32,6 +32,7 @@ class ThreadController extends Controller
|
||||
$threads = $thread->get();
|
||||
/* get the values of priority from Priority Table */
|
||||
$priorities = $priority->get();
|
||||
|
||||
/* Direct to view page */
|
||||
return view('themes.default1.admin.helpdesk.tickets.ticket', compact('threads', 'priorities'));
|
||||
} catch (Exception $e) {
|
||||
|
@@ -18,6 +18,7 @@ class UrlSettingController extends Controller
|
||||
$url = $request->url();
|
||||
$www = $this->checkWWW($url);
|
||||
$https = $this->checkHTTP($url);
|
||||
|
||||
//dd($www, $https);
|
||||
try {
|
||||
return view('themes.default1.admin.helpdesk.settings.url.settings', compact('www', 'https'));
|
||||
|
@@ -155,6 +155,7 @@ class CannedController extends Controller
|
||||
/* delete the selected field */
|
||||
/* Check whether function success or not */
|
||||
$canned->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect()->route('canned.list')->with('success', Lang::get('lang.canned_response_deleted'));
|
||||
} catch (Exception $e) {
|
||||
@@ -180,6 +181,7 @@ class CannedController extends Controller
|
||||
} else {
|
||||
$msg = '';
|
||||
}
|
||||
|
||||
// returning the canned response in JSON format
|
||||
return \Response::json($msg);
|
||||
}
|
||||
|
@@ -576,6 +576,7 @@ class FilterController extends Controller
|
||||
$query->whereIn('tickets.team_id', $teams)
|
||||
->orWhereIn('tickets.assigned_to', $users);
|
||||
});
|
||||
|
||||
// dd($table->toSql());
|
||||
return $table;
|
||||
}
|
||||
@@ -899,6 +900,7 @@ class FilterController extends Controller
|
||||
} else {
|
||||
$table = $table->where('tickets.id', '=', null);
|
||||
}
|
||||
|
||||
// dd($table->toSql());
|
||||
return $table;
|
||||
}
|
||||
|
@@ -51,6 +51,7 @@ class FilterControllerOld extends Controller
|
||||
if ((is_array($tags) && count($tags) > 0) || (is_array($labels) && count($labels) > 0)) {
|
||||
$render = true;
|
||||
}
|
||||
|
||||
// return \Datatables::of($table)->make();
|
||||
return \Ttable::getTable($table);
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@ class ImapMail extends Mailbox
|
||||
{
|
||||
//dd($this->getImapStream());
|
||||
$mailsIds = imap_search($this->getImapStream(), $criteria, SE_UID);
|
||||
|
||||
//dd($mailsIds);
|
||||
return $mailsIds ? $mailsIds : [];
|
||||
}
|
||||
|
@@ -178,6 +178,7 @@ class OrganizationController extends Controller
|
||||
try {
|
||||
/* select the field by id */
|
||||
$orgs = $org->whereId($id)->first();
|
||||
|
||||
/* To view page */
|
||||
return view('themes.default1.agent.helpdesk.organization.show', compact('orgs'));
|
||||
} catch (Exception $e) {
|
||||
@@ -198,6 +199,7 @@ class OrganizationController extends Controller
|
||||
try {
|
||||
/* select the field by id */
|
||||
$orgs = $org->whereId($id)->first();
|
||||
|
||||
/* To view page */
|
||||
return view('themes.default1.agent.helpdesk.organization.edit', compact('orgs'));
|
||||
} catch (Exception $e) {
|
||||
@@ -254,6 +256,7 @@ class OrganizationController extends Controller
|
||||
/* Delete the field selected from the table */
|
||||
/* Check whether function success or not */
|
||||
$orgs->delete();
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('organizations')->with('success', Lang::get('lang.organization_deleted_successfully'));
|
||||
} catch (Exception $e) {
|
||||
|
24
app/Http/Controllers/Agent/helpdesk/TicketController.php
Executable file → Normal file
24
app/Http/Controllers/Agent/helpdesk/TicketController.php
Executable file → Normal file
@@ -53,6 +53,7 @@ use Mail;
|
||||
use UTC;
|
||||
use Vsmoraes\Pdf\PdfFacade;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Model\helpdesk\Agent\Location;
|
||||
|
||||
/**
|
||||
* TicketController.
|
||||
@@ -80,6 +81,7 @@ class TicketController extends Controller
|
||||
*/
|
||||
public function newticket(CountryCode $code)
|
||||
{
|
||||
$locations = Location::all();
|
||||
$location = GeoIP::getLocation();
|
||||
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
|
||||
$pcode = '';
|
||||
@@ -89,7 +91,7 @@ class TicketController extends Controller
|
||||
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
||||
$email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.new', compact('email_mandatory', 'settings'))->with('phonecode', $pcode);
|
||||
return view('themes.default1.agent.helpdesk.ticket.new', compact('locations', 'email_mandatory', 'settings'))->with('phonecode', $pcode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -501,6 +503,7 @@ class TicketController extends Controller
|
||||
$ticket = Tickets::where('tickets.id', '=', $id)->first();
|
||||
$html = view('themes.default1.agent.helpdesk.ticket.pdf', compact('id', 'ticket', 'tickets'))->render();
|
||||
$html1 = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
|
||||
|
||||
/**
|
||||
* This statement throws error with php7.1.
|
||||
*
|
||||
@@ -763,7 +766,8 @@ class TicketController extends Controller
|
||||
$from = $this->PhpMailController->mailfrom('0', $ticketdata->dept_id),
|
||||
$to = ['name' => $username, 'email' => $emailadd],
|
||||
$message = ['subject' => $updated_subject, 'scenario' => 'create-ticket'],
|
||||
$template_variables = ['user' => $username,
|
||||
$template_variables = [
|
||||
'user' => $username,
|
||||
'ticket_number' => $ticket_number2,
|
||||
'department_sign' => '',
|
||||
'system_link' => $link,
|
||||
@@ -832,7 +836,8 @@ class TicketController extends Controller
|
||||
],
|
||||
$message = [
|
||||
'subject' => $updated_subject,
|
||||
'body' => $body, 'scenario' => $mail,
|
||||
'body' => $body,
|
||||
'scenario' => $mail,
|
||||
],
|
||||
$template_variables = [
|
||||
'ticket_agent_name' => $email_data['to_user_name'],
|
||||
@@ -841,7 +846,8 @@ class TicketController extends Controller
|
||||
'user' => $email_data['to_user_name'],
|
||||
'ticket_number' => $ticket_number2,
|
||||
'email_address' => $emailadd,
|
||||
'name' => $ticket_creator, ]
|
||||
'name' => $ticket_creator,
|
||||
]
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
@@ -2141,9 +2147,12 @@ class TicketController extends Controller
|
||||
$email = $email;
|
||||
$ticket_id = $ticket_id;
|
||||
$validator = \Validator::make(
|
||||
['email' => $email,
|
||||
'name' => $name, ],
|
||||
['email' => 'required|email',
|
||||
[
|
||||
'email' => $email,
|
||||
'name' => $name,
|
||||
],
|
||||
[
|
||||
'email' => 'required|email',
|
||||
]
|
||||
);
|
||||
$user = User::where('email', '=', $email)->first();
|
||||
@@ -2457,6 +2466,7 @@ class TicketController extends Controller
|
||||
$ticket = Tickets::where('id', $thread->ticket_id)->first();
|
||||
$html = view('themes.default1.agent.helpdesk.ticket.thread-pdf', compact('thread', 'system', 'company', 'ticket'))->render();
|
||||
$html1 = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
|
||||
|
||||
/**
|
||||
* This statement throws error with php7.1.
|
||||
*
|
||||
|
@@ -201,6 +201,7 @@ class TicketWorkflowController extends Controller
|
||||
} elseif ($condition == 'ends') {
|
||||
$return = $this->checkEnds($statement, $to_check);
|
||||
}
|
||||
|
||||
// elseif($condition == 'match') {
|
||||
//
|
||||
// } elseif($condition == 'not_match') {
|
||||
|
@@ -29,6 +29,7 @@ use App\Model\helpdesk\Ticket\Ticket_Thread;
|
||||
use App\Model\helpdesk\Ticket\Tickets;
|
||||
use App\Model\helpdesk\Utility\CountryCode;
|
||||
use App\Model\helpdesk\Utility\Otp;
|
||||
use App\Model\helpdesk\Agent\Department;
|
||||
use App\User;
|
||||
// classes
|
||||
use Auth;
|
||||
@@ -149,6 +150,7 @@ class UserController extends Controller
|
||||
$query->orWhere('country_code', 'LIKE', '%'.$search.'%');
|
||||
});
|
||||
}
|
||||
|
||||
// displaying list of users with chumper datatables
|
||||
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
|
||||
return \Yajra\DataTables\Facades\DataTables::of($users)
|
||||
@@ -338,6 +340,7 @@ class UserController extends Controller
|
||||
|
||||
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
|
||||
}
|
||||
|
||||
// $user->save();
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
|
||||
@@ -676,6 +679,7 @@ class UserController extends Controller
|
||||
$user = new User();
|
||||
/* select the field where id = $id(request Id) */
|
||||
$users = $user->whereId($id)->first();
|
||||
|
||||
/* Update the value by selected field */
|
||||
/* Check whether function success or not */
|
||||
try {
|
||||
@@ -697,6 +701,7 @@ class UserController extends Controller
|
||||
|
||||
$this->storeUserOrgRelation($id, $orgid);
|
||||
}
|
||||
|
||||
/* redirect to Index page with Success Message */
|
||||
return redirect('user')->with('success', Lang::get('lang.User-profile-Updated-Successfully'));
|
||||
} catch (Exception $e) {
|
||||
@@ -733,11 +738,13 @@ class UserController extends Controller
|
||||
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
|
||||
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
||||
$status = $settings->status;
|
||||
|
||||
$departments = Department::all();
|
||||
try {
|
||||
return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user'))
|
||||
->with(['phonecode' => $phonecode->phonecode,
|
||||
'verify' => $status, ]);
|
||||
return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user', 'departments'))
|
||||
->with([
|
||||
'phonecode' => $phonecode->phonecode,
|
||||
'verify' => $status,
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return redirect()->back()->with('fails', $e->getMessage());
|
||||
}
|
||||
@@ -932,6 +939,7 @@ class UserController extends Controller
|
||||
$user_org->org_id = $org->id;
|
||||
$user_org->user_id = $id;
|
||||
$user_org->save();
|
||||
|
||||
// for success return 0
|
||||
return 0;
|
||||
}
|
||||
@@ -956,6 +964,7 @@ class UserController extends Controller
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
||||
}
|
||||
|
||||
// return random string
|
||||
return $randomString;
|
||||
}
|
||||
@@ -1061,6 +1070,7 @@ class UserController extends Controller
|
||||
if (Hash::check(Input::get('otp'), $otp->otp)) {
|
||||
Otp::where('user_id', '=', Input::get('u_id'))
|
||||
->update(['otp' => '']);
|
||||
|
||||
// User::where('id', '=', $user->id)
|
||||
// ->update(['active' => 1]);
|
||||
// $this->openTicketAfterVerification($user->id);
|
||||
|
@@ -68,6 +68,7 @@ class ArticleController extends Controller
|
||||
->select('id', 'name', 'description', 'publish_time', 'slug')
|
||||
->orderBy('publish_time', 'desc')
|
||||
->get();
|
||||
|
||||
// returns chumper datatable
|
||||
return Datatable::Collection($articles)
|
||||
|
||||
@@ -136,6 +137,7 @@ class ArticleController extends Controller
|
||||
{
|
||||
/* get the attributes of the category */
|
||||
$category = $category->pluck('id', 'name');
|
||||
|
||||
/* get the create page */
|
||||
try {
|
||||
return view('themes.default1.agent.kb.article.create', compact('category'));
|
||||
@@ -169,6 +171,7 @@ class ArticleController extends Controller
|
||||
foreach ($requests as $req) {
|
||||
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||
}
|
||||
|
||||
/* insert the values to the article table */
|
||||
try {
|
||||
$article->fill($request->except('slug'))->save();
|
||||
@@ -203,6 +206,7 @@ class ArticleController extends Controller
|
||||
/* get the selected article and display it at edit page */
|
||||
/* Get the selected article with id */
|
||||
$article = $article->whereId($id)->first();
|
||||
|
||||
/* send to the edit page */
|
||||
try {
|
||||
return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category'));
|
||||
@@ -244,6 +248,7 @@ class ArticleController extends Controller
|
||||
foreach ($requests as $req) {
|
||||
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||
}
|
||||
|
||||
/* update the value to the table */
|
||||
try {
|
||||
$article->fill($request->all())->save();
|
||||
|
@@ -123,6 +123,7 @@ class CategoryController extends Controller
|
||||
{
|
||||
/* Get the all attributes in the category model */
|
||||
$category = $category->pluck('name', 'id')->toArray();
|
||||
|
||||
/* get the view page to create new category with all attributes
|
||||
of category model */
|
||||
try {
|
||||
@@ -146,6 +147,7 @@ class CategoryController extends Controller
|
||||
$sl = $request->input('name');
|
||||
$slug = Str::slug($sl, '-');
|
||||
$category->slug = $slug;
|
||||
|
||||
// send success message to index page
|
||||
try {
|
||||
$category->fill($request->input())->save();
|
||||
@@ -169,6 +171,7 @@ class CategoryController extends Controller
|
||||
/* get the atributes of the category model whose id == $id */
|
||||
$category = Category::whereId($id)->first();
|
||||
$categories = Category::pluck('name', 'id')->toArray();
|
||||
|
||||
/* get the Edit page the selected category via id */
|
||||
return view('themes.default1.agent.kb.category.edit', compact('category', 'categories'));
|
||||
}
|
||||
@@ -188,6 +191,7 @@ class CategoryController extends Controller
|
||||
$category = Category::where('id', $id)->first();
|
||||
$sl = $request->input('name');
|
||||
$slug = Str::slug($sl, '-');
|
||||
|
||||
/* update the values at the table via model according with the request */
|
||||
//redirct to index page with success message
|
||||
try {
|
||||
@@ -218,6 +222,7 @@ class CategoryController extends Controller
|
||||
} else {
|
||||
/* delete the category selected, id == $id */
|
||||
$category = $category->whereId($id)->first();
|
||||
|
||||
// redirect to index with success message
|
||||
try {
|
||||
$category->delete();
|
||||
|
@@ -56,6 +56,7 @@ class SettingsController extends Controller
|
||||
/* get the setting where the id == 1 */
|
||||
$settings = $settings->whereId('1')->first();
|
||||
$time = $time->get();
|
||||
|
||||
//$date = $date->get();
|
||||
return view('themes.default1.agent.kb.settings.settings', compact('date', 'settings', 'time'));
|
||||
}
|
||||
|
@@ -77,6 +77,7 @@ class AuthController extends Controller
|
||||
}
|
||||
//dd(\Config::get('services'));
|
||||
$s = Socialite::driver($provider)->redirect();
|
||||
|
||||
//dd('dscd');
|
||||
return $s;
|
||||
}
|
||||
@@ -114,6 +115,7 @@ class AuthController extends Controller
|
||||
}
|
||||
Auth::login($user);
|
||||
}
|
||||
|
||||
//after login redirecting to home page
|
||||
return redirect('/');
|
||||
} catch (\Exception $ex) {
|
||||
|
5
app/Http/Controllers/Client/helpdesk/FormController.php
Executable file → Normal file
5
app/Http/Controllers/Client/helpdesk/FormController.php
Executable file → Normal file
@@ -21,6 +21,7 @@ use App\Model\helpdesk\Ticket\Ticket_Thread;
|
||||
use App\Model\helpdesk\Ticket\Tickets;
|
||||
use App\Model\helpdesk\Utility\CountryCode;
|
||||
use App\User;
|
||||
use App\Model\helpdesk\Agent\Location;
|
||||
use Exception;
|
||||
// classes
|
||||
use Form;
|
||||
@@ -64,6 +65,7 @@ class FormController extends Controller
|
||||
*/
|
||||
public function getForm(Help_topic $topic, CountryCode $code)
|
||||
{
|
||||
$locations = Location::all();
|
||||
if (\Config::get('database.install') == '%0%') {
|
||||
return \Redirect::route('licence');
|
||||
}
|
||||
@@ -85,7 +87,7 @@ class FormController extends Controller
|
||||
|
||||
[$max_size_in_bytes, $max_size_in_actual] = $this->fileUploadController->file_upload_max_size();
|
||||
|
||||
return view('themes.default1.client.helpdesk.form', compact('topics', 'codes', 'email_mandatory', 'max_size_in_bytes', 'max_size_in_actual'))->with('phonecode', $phonecode);
|
||||
return view('themes.default1.client.helpdesk.form', compact('topics', 'codes', 'email_mandatory', 'max_size_in_bytes', 'max_size_in_actual', 'locations'))->with('phonecode', $phonecode);
|
||||
} else {
|
||||
return \Redirect::route('home');
|
||||
}
|
||||
@@ -249,6 +251,7 @@ class FormController extends Controller
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// dd($result);
|
||||
return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is') . ' ' . $result[0] . '. ');
|
||||
} else {
|
||||
|
@@ -209,6 +209,7 @@ class GuestController extends Controller
|
||||
$tickets = $tickets->where('user_id', '=', $user_id)->first();
|
||||
//dd($ticket);
|
||||
$thread = $thread->where('ticket_id', $tickets->id)->first();
|
||||
|
||||
//dd($thread);
|
||||
// $tickets = $tickets->whereId($id)->first();
|
||||
return view('themes.default1.client.guest-user.view_ticket', compact('thread', 'tickets'));
|
||||
@@ -424,6 +425,7 @@ class GuestController extends Controller
|
||||
if (Hash::check(Input::get('otp'), $otp->otp)) {
|
||||
Otp::where('user_id', '=', Input::get('u_id'))
|
||||
->update(['otp' => '']);
|
||||
|
||||
// User::where('id', '=', $user->id)
|
||||
// ->update(['active' => 1]);
|
||||
// $this->openTicketAfterVerification($user->id);
|
||||
|
0
app/Http/Controllers/Client/helpdesk/UnAuthController.php
Executable file → Normal file
0
app/Http/Controllers/Client/helpdesk/UnAuthController.php
Executable file → Normal file
@@ -141,6 +141,7 @@ class UserController extends Controller
|
||||
/* from whole attribute pick the article_id */
|
||||
$article_id = $all->pluck('article_id');
|
||||
$categorys = $category->get();
|
||||
|
||||
/* direct to view with $article_id */
|
||||
return view('themes.default1.client.kb.article-list.category', compact('all', 'id', 'categorys', 'article_id'));
|
||||
}
|
||||
|
0
app/Http/Controllers/Common/ApiSettings.php
Executable file → Normal file
0
app/Http/Controllers/Common/ApiSettings.php
Executable file → Normal file
@@ -15,6 +15,7 @@ class ExcelController extends Controller
|
||||
if (count($data) == 0) {
|
||||
throw new Exception('No data');
|
||||
}
|
||||
|
||||
//dd(Excel::download(new UserExport($data), $filename.'.'.'xls'));
|
||||
return Excel::download(new UserExport($data), $filename.'.'.'xlsx');
|
||||
}
|
||||
|
@@ -553,6 +553,7 @@ class SettingsController extends Controller
|
||||
$attributes[$key]['author'] = $field['author'];
|
||||
}
|
||||
}
|
||||
|
||||
//dd($attributes);
|
||||
return $attributes;
|
||||
}
|
||||
|
@@ -169,6 +169,7 @@ class UpgradeController extends Controller
|
||||
}
|
||||
}
|
||||
echo '</ul>';
|
||||
|
||||
//Artisan::call('migrate', ['--force' => true]);
|
||||
return true;
|
||||
} catch (Exception $ex) {
|
||||
@@ -397,6 +398,7 @@ class UpgradeController extends Controller
|
||||
try {
|
||||
if (Utility::getFileVersion() > Utility::getDatabaseVersion()) {
|
||||
$url = url('database-upgrade');
|
||||
|
||||
//$string = "Your Database is outdated please upgrade <a href=$url>Now !</a>";
|
||||
return view('themes.default1.update.database', compact('url'));
|
||||
} else {
|
||||
|
@@ -13,4 +13,9 @@ class Department extends BaseModel
|
||||
'template_set', 'auto_ticket_response', 'auto_message_response',
|
||||
'auto_response_email', 'recipient', 'group_access', 'department_sign',
|
||||
];
|
||||
|
||||
public function users()
|
||||
{
|
||||
return $this->hasMany(User::class, 'dept_id', 'id');
|
||||
}
|
||||
}
|
||||
|
16
app/Model/helpdesk/Agent/Location.php
Normal file
16
app/Model/helpdesk/Agent/Location.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Model\helpdesk\Agent;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Location extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $primaryKey = 'locationid';
|
||||
public $incrementing = true;
|
||||
protected $keyType = 'int';
|
||||
|
||||
protected $fillable = ['locationname'];
|
||||
}
|
@@ -3,17 +3,46 @@
|
||||
namespace App\Model\helpdesk\Ticket;
|
||||
|
||||
use App\BaseModel;
|
||||
use App\Model\helpdesk\Agent\Location;
|
||||
|
||||
class Tickets extends BaseModel
|
||||
{
|
||||
protected $table = 'tickets';
|
||||
|
||||
protected $fillable = ['id', 'ticket_number', 'num_sequence', 'user_id', 'priority_id', 'sla', 'help_topic_id', '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', 'last_response_at', 'created_at', 'updated_at', 'assigned_to'];
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'ticket_number',
|
||||
'num_sequence',
|
||||
'user_id',
|
||||
'priority_id',
|
||||
'sla',
|
||||
'help_topic_id',
|
||||
'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',
|
||||
'last_response_at',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'assigned_to',
|
||||
'locationid' // <-- Thêm locationid vào đây
|
||||
];
|
||||
|
||||
// Các quan hệ cũ...
|
||||
|
||||
// public function attach(){
|
||||
// return $this->hasMany('App\Model\helpdesk\Ticket\Ticket_attachments',);
|
||||
//
|
||||
// }
|
||||
public function thread()
|
||||
{
|
||||
return $this->hasMany(\App\Model\helpdesk\Ticket\Ticket_Thread::class, 'ticket_id');
|
||||
@@ -37,6 +66,12 @@ class Tickets extends BaseModel
|
||||
return $this->hasMany(\App\Model\helpdesk\Ticket\Ticket_Form_Data::class, 'ticket_id');
|
||||
}
|
||||
|
||||
// Thêm quan hệ location mới
|
||||
public function location()
|
||||
{
|
||||
return $this->belongsTo(Location::class, 'locationid', 'locationid');
|
||||
}
|
||||
|
||||
public function extraFields()
|
||||
{
|
||||
$id = $this->attributes['id'];
|
||||
|
13
app/User.php
13
app/User.php
@@ -8,6 +8,7 @@ use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
||||
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Tymon\JWTAuth\Contracts\JWTSubject as AuthenticatableUserContract;
|
||||
use App\Model\helpdesk\Agent\Department;
|
||||
|
||||
class User extends Model implements AuthenticatableContract, CanResetPasswordContract, AuthenticatableUserContract
|
||||
{
|
||||
@@ -26,10 +27,13 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = ['user_name', 'email', 'password', 'active', 'first_name', 'last_name', 'ban', 'ext', 'mobile', 'profile_pic',
|
||||
protected $fillable = [
|
||||
'user_name', 'email', 'password', 'active', 'first_name', 'last_name', 'ban', 'ext', 'mobile', 'profile_pic',
|
||||
'phone_number', 'company', 'agent_sign', 'account_type', 'account_status',
|
||||
'assign_group', 'primary_dpt', 'agent_tzone', 'daylight_save', 'limit_access',
|
||||
'directory_listing', 'vacation_mode', 'role', 'internal_note', 'country_code', 'not_accept_ticket', 'is_delete', ];
|
||||
'directory_listing', 'vacation_mode', 'role', 'internal_note', 'country_code', 'not_accept_ticket', 'is_delete',
|
||||
'dept_id', // <-- bổ sung trường dept_id vào đây
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes excluded from the model's JSON form.
|
||||
@@ -175,6 +179,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
|
||||
{
|
||||
return $this->name();
|
||||
}
|
||||
public function department()
|
||||
{
|
||||
// User.dept_id là foreign key, Department.id là primary key
|
||||
return $this->belongsTo(Department::class, 'dept_id', 'id');
|
||||
}
|
||||
|
||||
public function getFirstNameAttribute($value)
|
||||
{
|
||||
|
@@ -101,6 +101,7 @@ return [
|
||||
*/
|
||||
'key' => env('APP_KEY', 'base64:h3KjrHeVxyE+j6c8whTAs2YI+7goylGZ/e2vElgXT6I='),
|
||||
'cipher' => 'AES-256-CBC',
|
||||
'key' => 'base64:MwXqXnQ6V0nvPvN6cKybA2nKFtAyYv9FItYX0ZrB67g=', // dán key thật vào đây
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Logging Configuration
|
||||
|
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('locations', function (Blueprint $table) {
|
||||
$table->id('locationid');
|
||||
$table->string('locationname');
|
||||
// $table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('locations');
|
||||
}
|
||||
};
|
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('tickets', function (Blueprint $table) {
|
||||
$table->unsignedBigInteger('locationid')->nullable();
|
||||
$table->foreign('locationid')->references('locationid')->on('locations')->onDelete('set null');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('tickets', function (Blueprint $table) {
|
||||
$table->dropForeign(['locationid']);
|
||||
$table->dropColumn('locationid');
|
||||
});
|
||||
}
|
||||
|
||||
};
|
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->unsignedInteger('dept_id')->nullable()->after('id');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('dept_id');
|
||||
});
|
||||
}
|
||||
};
|
25
database/seeders/LocationSeeder.php
Normal file
25
database/seeders/LocationSeeder.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Location; // <--- Thêm dòng này
|
||||
class LocationSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
Location::insert([
|
||||
['locationname' => 'Hà Nội'],
|
||||
['locationname' => 'Đà Nẵng'],
|
||||
['locationname' => 'TP. Hồ Chí Minh'],
|
||||
['locationname' => 'Cần Thơ'],
|
||||
['locationname' => 'Huế'],
|
||||
]);
|
||||
}
|
||||
}
|
0
lang/en/datatables.php
Executable file → Normal file
0
lang/en/datatables.php
Executable file → Normal file
0
lang/en/lang.php
Executable file → Normal file
0
lang/en/lang.php
Executable file → Normal file
0
lang/ru/datatables.php
Executable file → Normal file
0
lang/ru/datatables.php
Executable file → Normal file
0
lang/ru/lang.php
Executable file → Normal file
0
lang/ru/lang.php
Executable file → Normal file
0
lang/ru/message.php
Executable file → Normal file
0
lang/ru/message.php
Executable file → Normal file
0
lang/ru/validation.php
Executable file → Normal file
0
lang/ru/validation.php
Executable file → Normal file
1559
lang/vi/lang.php
Normal file
1559
lang/vi/lang.php
Normal file
File diff suppressed because it is too large
Load Diff
18
lang/vi/pagination.php
Normal file
18
lang/vi/pagination.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Trước',
|
||||
'next' => 'Tiếp »',
|
||||
];
|
22
lang/vi/passwords.php
Normal file
22
lang/vi/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Mật khẩu phải chứa ít nhất sáu ký tự để có thể xác nhận.',
|
||||
'user' => "Chúng tôi không thể tìm thấy người dùng với địa chỉ email này.",
|
||||
'token' => 'Mã đặt lại mật khẩu này không hợp lệ.',
|
||||
'sent' => 'Chúng tôi đã gửi liên kết đặt lại mật khẩu qua email cho bạn!',
|
||||
'reset' => 'Mật khẩu của bạn đã được đặt lại.',
|
||||
|
||||
];
|
102
lang/vi/validation.php
Normal file
102
lang/vi/validation.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Các dòng ngôn ngữ sau chứa các thông báo lỗi mặc định được sử dụng bởi
|
||||
| lớp validator. Một số quy tắc có nhiều phiên bản khác nhau như
|
||||
| quy tắc kích thước. Bạn có thể tùy chỉnh từng thông báo tại đây.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute phải được chấp nhận.',
|
||||
'active_url' => ':attribute không phải là một URL hợp lệ.',
|
||||
'after' => ':attribute phải là ngày sau ngày :date.',
|
||||
'alpha' => ':attribute chỉ được chứa các chữ cái.',
|
||||
'alpha_dash' => ':attribute chỉ được chứa các chữ cái, số và dấu gạch ngang.',
|
||||
'alpha_num' => ':attribute chỉ được chứa các chữ cái và số.',
|
||||
'array' => ':attribute phải là một mảng.',
|
||||
'before' => ':attribute phải là ngày trước ngày :date.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute phải nằm giữa :min và :max.',
|
||||
'file' => ':attribute phải nằm giữa :min và :max kilobyte.',
|
||||
'string' => ':attribute phải nằm giữa :min và :max ký tự.',
|
||||
'array' => ':attribute phải có từ :min đến :max phần tử.',
|
||||
],
|
||||
'boolean' => 'Trường :attribute phải là true hoặc false.',
|
||||
'confirmed' => 'Xác nhận :attribute không khớp.',
|
||||
'date' => ':attribute không phải là ngày hợp lệ.',
|
||||
'date_format' => ':attribute không khớp với định dạng :format.',
|
||||
'different' => ':attribute và :other phải khác nhau.',
|
||||
'digits' => ':attribute phải có :digits chữ số.',
|
||||
'digits_between' => ':attribute phải có từ :min đến :max chữ số.',
|
||||
'email' => ':attribute phải là một địa chỉ email hợp lệ.',
|
||||
'filled' => 'Trường :attribute là bắt buộc.',
|
||||
'exists' => ':attribute đã chọn không hợp lệ.',
|
||||
'image' => ':attribute phải là một hình ảnh.',
|
||||
'in' => ':attribute đã chọn không hợp lệ.',
|
||||
'integer' => ':attribute phải là số nguyên.',
|
||||
'ip' => ':attribute phải là địa chỉ IP hợp lệ.',
|
||||
'max' => [
|
||||
'numeric' => ':attribute không được lớn hơn :max.',
|
||||
'file' => ':attribute không được lớn hơn :max kilobyte.',
|
||||
'string' => ':attribute không được lớn hơn :max ký tự.',
|
||||
'array' => ':attribute không được có nhiều hơn :max phần tử.',
|
||||
],
|
||||
'mimes' => ':attribute phải là tệp có định dạng: :values.',
|
||||
'min' => [
|
||||
'numeric' => ':attribute phải ít nhất là :min.',
|
||||
'file' => ':attribute phải ít nhất là :min kilobyte.',
|
||||
'string' => ':attribute phải ít nhất là :min ký tự.',
|
||||
'array' => ':attribute phải có ít nhất :min phần tử.',
|
||||
],
|
||||
'not_in' => ':attribute đã chọn không hợp lệ.',
|
||||
'numeric' => ':attribute phải là một số.',
|
||||
'regex' => 'Định dạng của :attribute không hợp lệ.',
|
||||
'required' => 'Trường :attribute là bắt buộc.',
|
||||
'required_if' => 'Trường :attribute là bắt buộc khi :other là :value.',
|
||||
'required_with' => 'Trường :attribute là bắt buộc khi :values có mặt.',
|
||||
'required_with_all' => 'Trường :attribute là bắt buộc khi tất cả :values có mặt.',
|
||||
'required_without' => 'Trường :attribute là bắt buộc khi :values không có mặt.',
|
||||
'required_without_all' => 'Trường :attribute là bắt buộc khi không có :values nào có mặt.',
|
||||
'same' => 'Trường :attribute và :other phải khớp nhau.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute phải có kích thước bằng :size.',
|
||||
'file' => ':attribute phải có kích thước bằng :size kilobyte.',
|
||||
'string' => ':attribute phải có độ dài bằng :size ký tự.',
|
||||
'array' => ':attribute phải chứa :size phần tử.',
|
||||
],
|
||||
'unique' => ':attribute đã được sử dụng.',
|
||||
'url' => 'Định dạng của :attribute không hợp lệ.',
|
||||
'timezone' => ':attribute phải là một múi giờ hợp lệ.',
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Bạn có thể chỉ định các thông báo tùy chỉnh cho các thuộc tính bằng cách sử dụng
|
||||
| quy ước "attribute.rule" để đặt tên dòng. Việc này giúp bạn nhanh chóng
|
||||
| chỉ định thông báo tùy chỉnh cho một quy tắc cụ thể.
|
||||
|
|
||||
*/
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Các dòng ngôn ngữ sau được sử dụng để thay thế các ký hiệu thuộc tính
|
||||
| bằng các tên dễ đọc hơn như Địa chỉ Email thay vì "email". Việc này giúp
|
||||
| các thông báo trở nên dễ hiểu hơn.
|
||||
|
|
||||
*/
|
||||
'attributes' => [],
|
||||
];
|
0
phpunit.xml
Executable file → Normal file
0
phpunit.xml
Executable file → Normal file
0
phpunit.xml.bak
Executable file → Normal file
0
phpunit.xml.bak
Executable file → Normal file
0
public/lb-faveo/css/bootstrap5.min.css
vendored
Executable file → Normal file
0
public/lb-faveo/css/bootstrap5.min.css
vendored
Executable file → Normal file
0
public/lb-faveo/css/custom.css
vendored
Executable file → Normal file
0
public/lb-faveo/css/custom.css
vendored
Executable file → Normal file
0
resources/views/auth/login.blade.php
Executable file → Normal file
0
resources/views/auth/login.blade.php
Executable file → Normal file
0
resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php
Executable file → Normal file
0
resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/report/index.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/report/index.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php
Executable file → Normal file
@@ -134,7 +134,12 @@ class="active"
|
||||
<span class="text-red"> *</span>
|
||||
@endif
|
||||
|
||||
{!! Form::text('code',null,['class' => 'form-control', 'id' => 'country_code', 'placeholder' => $phonecode, 'title' => Lang::get('lang.enter-country-phone-code')]) !!}
|
||||
{!! Form::text('code', null, [
|
||||
'class' => 'form-control',
|
||||
'id' => 'country_code',
|
||||
'placeholder' => $phonecode,
|
||||
'title' => Lang::get('lang.enter-country-phone-code'),
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
@@ -185,7 +190,10 @@ class="active"
|
||||
<label>{!! Lang::get('lang.help_topic') !!}:</label>
|
||||
<!-- helptopic -->
|
||||
<?php $helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->select('topic', 'id')->get(); ?>
|
||||
{!! Form::select('helptopic', ['Helptopic'=>$helptopic->pluck('topic','id')->toArray()],null,['class' => 'form-control select','id'=>'selectid']) !!}
|
||||
{!! Form::select('helptopic', ['Helptopic' => $helptopic->pluck('topic', 'id')->toArray()], null, [
|
||||
'class' => 'form-control select',
|
||||
'id' => 'selectid',
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@@ -193,7 +201,9 @@ class="active"
|
||||
<div class="form-group">
|
||||
<label>{!! Lang::get('lang.sla_plan') !!}:</label>
|
||||
<?php $sla_plan = App\Model\helpdesk\Manage\Sla_plan::where('status', '=', 1)->select('grace_period', 'id')->get(); ?>
|
||||
{!! Form::select('sla', ['SLA'=>$sla_plan->pluck('grace_period','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!! Form::select('sla', ['SLA' => $sla_plan->pluck('grace_period', 'id')->toArray()], null, [
|
||||
'class' => 'form-control select',
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@@ -201,7 +211,8 @@ class="active"
|
||||
<div class="form-group" id="duedate">
|
||||
<label>{!! Lang::get('lang.due_date') !!}:</label>
|
||||
{!! Form::text('duedate', null, ['class' => 'form-control', 'id' => 'datemask']) !!}
|
||||
<button class="btn clear-input" id="duedates" style="display: none" type="button"><i class="fas fa-times"></i></button>
|
||||
<button class="btn clear-input" id="duedates" style="display: none" type="button"><i
|
||||
class="fas fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@@ -209,7 +220,12 @@ class="active"
|
||||
<div class="form-group">
|
||||
<label>{!! Lang::get('lang.assign_to') !!}:</label>
|
||||
<?php $agents = App\User::where('role', '!=', 'user')->where('active', '=', 1)->get(); ?>
|
||||
{!! Form::select('assignto', [''=>'Select an Agent','Agents'=>$agents->pluck('first_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!! Form::select(
|
||||
'assignto',
|
||||
['' => 'Select an Agent', 'Agents' => $agents->pluck('first_name', 'id')->toArray()],
|
||||
null,
|
||||
['class' => 'form-control select'],
|
||||
) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div id="response" class="col-md-6 form-group"></div>
|
||||
@@ -242,6 +258,23 @@ class="active"
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-1">
|
||||
<label for="location">Vị trí:</label>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<select name="location" class="form-control">
|
||||
<option value="">-- Chọn vị trí --</option>
|
||||
@foreach ($locations as $loc)
|
||||
<option value="{{ $loc->id }}"
|
||||
{{ old('location') == $loc->id ? 'selected' : '' }}>
|
||||
{{ $loc->locationname }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('body') ? 'has-error' : '' }}">
|
||||
<!-- details -->
|
||||
<div class="row">
|
||||
@@ -249,7 +282,11 @@ class="active"
|
||||
<label>{!! Lang::get('lang.detail') !!}:<span class="text-red"> *</span></label>
|
||||
</div>
|
||||
<div class="col-md-11">
|
||||
{!! Form::textarea('body',null,['class' => 'form-control','id' => 'body', 'style'=>"width:100%; height:150px;"]) !!}
|
||||
{!! Form::textarea('body', null, [
|
||||
'class' => 'form-control',
|
||||
'id' => 'body',
|
||||
'style' => 'width:100%; height:150px;',
|
||||
]) !!}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -262,11 +299,17 @@ class="active"
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<?php $Priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('status', '=', 1)->get(); ?>
|
||||
{!! Form::select('priority', [Lang::get('lang.priorities')=>$Priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!! Form::select(
|
||||
'priority',
|
||||
[Lang::get('lang.priorities') => $Priority->pluck('priority_desc', 'priority_id')->toArray()],
|
||||
null,
|
||||
['class' => 'form-control select'],
|
||||
) !!}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -275,7 +318,8 @@ class="active"
|
||||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<input type="submit" value="{!! Lang::get('lang.create_ticket') !!}" class="btn btn-primary" onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();">
|
||||
<input type="submit" value="{!! Lang::get('lang.create_ticket') !!}" class="btn btn-primary"
|
||||
onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -289,10 +333,13 @@ class="active"
|
||||
helpTopic = $("#selectid").val();
|
||||
send(helpTopic);
|
||||
});
|
||||
|
||||
function send(helpTopic) {
|
||||
$.ajax({
|
||||
url: "{{ url('/get-helptopic-form') }}",
|
||||
data: {'helptopic': helpTopic},
|
||||
data: {
|
||||
'helptopic': helpTopic
|
||||
},
|
||||
type: "GET",
|
||||
dataType: "html",
|
||||
success: function(response) {
|
||||
@@ -330,7 +377,9 @@ class="active"
|
||||
} else {
|
||||
$('#duedate').addClass("has-error");
|
||||
$('#clear-up').remove();
|
||||
$('#box-header1').append("<div id='clear-up'><br><br><div class='alert alert-danger alert-dismissable'><i class='fa fa-ban'></i><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button> Invalid Due date</div></div>");
|
||||
$('#box-header1').append(
|
||||
"<div id='clear-up'><br><br><div class='alert alert-danger alert-dismissable'><i class='fa fa-ban'></i><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button> Invalid Due date</div></div>"
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -383,6 +432,3 @@ class="active"
|
||||
</script>
|
||||
|
||||
@stop
|
||||
|
||||
|
||||
|
||||
|
630
resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php
Executable file → Normal file
630
resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@ class="nav-link active"
|
||||
{{Session::get('fails')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
gfggggdgd
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<i class="fas fa-ban"></i>
|
||||
|
@@ -101,16 +101,16 @@ class="nav-link active"
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!-- email address -->
|
||||
{!! Form::label('email',Lang::get('lang.email_address')) !!}
|
||||
<div>
|
||||
{{$user->email}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('company') ? 'has-error' : '' }}">
|
||||
<!-- company -->
|
||||
{!! Form::label('company',Lang::get('lang.company')) !!}
|
||||
{!! Form::text('company',null,['class' => 'form-control']) !!}
|
||||
<label for="dept_id">Phòng ban</label>
|
||||
<select class="form-control" name="dept_id" id="dept_id" required>
|
||||
<option value="">-- Chọn phòng ban --</option>
|
||||
@foreach ($departments as $department)
|
||||
<option value="{{ $department->id }}"
|
||||
{{ $user->dept_id == $department->id ? 'selected' : '' }}>
|
||||
{{ $department->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- phone extension -->
|
||||
|
@@ -93,6 +93,12 @@ class="active"
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class='col-sm-4'><label>{!! Lang::get('lang.company') !!}:</label></div> <div class='col-sm-7'> {{ $user->company }}</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class='col-sm-4'><label>{!! Lang::get('lang.department') !!}:</label></div>
|
||||
<div class='col-sm-7'>
|
||||
{{ $user->department ? $user->department->name : '-' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class='col-sm-4'><label>{!! Lang::get('lang.role') !!}:</label></div> <div class='col-sm-7'> {{ $user->role }}</div>
|
||||
|
0
resources/views/themes/default1/agent/layout/agent.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/layout/agent.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/layout/agentold.blade.php
Executable file → Normal file
0
resources/views/themes/default1/agent/layout/agentold.blade.php
Executable file → Normal file
189
resources/views/themes/default1/client/helpdesk/ckeckticket.blade.php
Executable file → Normal file
189
resources/views/themes/default1/client/helpdesk/ckeckticket.blade.php
Executable file → Normal file
@@ -3,7 +3,8 @@
|
||||
|
||||
<style>
|
||||
.words {
|
||||
margin-right: 10px; /* Adjust the value to increase or decrease the gap between list items */
|
||||
margin-right: 10px;
|
||||
/* Adjust the value to increase or decrease the gap between list items */
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -42,25 +43,61 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}
|
||||
.mailbox-attachments li {
|
||||
float: left;
|
||||
width: 200px;
|
||||
border: 1px solid #eee;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.mailbox-attachment-name{font-weight:bold;color:#666;word-break: break-word;}
|
||||
.mailbox-attachment-name {
|
||||
font-weight: bold;
|
||||
color: #666;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}
|
||||
.mailbox-attachment-icon,
|
||||
.mailbox-attachment-info,
|
||||
.mailbox-attachment-size {
|
||||
display: block
|
||||
}
|
||||
|
||||
.mailbox-attachment-info{padding:10px;background:#f4f4f4;height: auto;}
|
||||
.mailbox-attachment-info {
|
||||
padding: 10px;
|
||||
background: #f4f4f4;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.mailbox-attachment-size{color:#999;font-size:12px}
|
||||
.mailbox-attachment-size {
|
||||
color: #999;
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}
|
||||
.mailbox-attachment-icon {
|
||||
text-align: center;
|
||||
font-size: 65px;
|
||||
color: #666;
|
||||
padding: 20px 10px
|
||||
}
|
||||
|
||||
.mailbox-attachment-icon.has-img{padding:0}
|
||||
.mailbox-attachment-icon.has-img {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}
|
||||
.mailbox-attachment-icon.has-img>img {
|
||||
max-width: 100%;
|
||||
height: auto
|
||||
}
|
||||
|
||||
#clearfix {display: inline-block!important;list-style-type: none!important;}
|
||||
#clearfix {
|
||||
display: inline-block !important;
|
||||
list-style-type: none !important;
|
||||
}
|
||||
|
||||
.ml40 {margin-left: -40px!important;}
|
||||
.ml40 {
|
||||
margin-left: -40px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="content" class="site-content col-sm-12">
|
||||
@@ -82,10 +119,10 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<div class="col-sm-3 text-right">
|
||||
|
||||
@if ($common_setting->status == '1')
|
||||
|
||||
<div>
|
||||
|
||||
<button class="btn btn-light dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false" style="background-color: whitesmoke">
|
||||
<button class="btn btn-light dropdown-toggle" type="button" id="dropdownMenuButton"
|
||||
data-bs-toggle="dropdown" aria-expanded="false" style="background-color: whitesmoke">
|
||||
|
||||
<i class="fas fa-exchange-alt" style="color:teal;"> </i>
|
||||
|
||||
@@ -129,7 +166,6 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<form id="foo">
|
||||
{!! csrf_field() !!}
|
||||
@foreach ($ratings as $rating)
|
||||
|
||||
@if ($rating->rating_area == 'Helpdesk Area')
|
||||
<?php
|
||||
$rating_value = App\Model\helpdesk\Ratings\RatingRef::where('rating_id', '=', $rating->id)->where('ticket_id', '=', $tickets->id)->first();
|
||||
@@ -142,12 +178,16 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<tr>
|
||||
|
||||
<th><div class="ticketratingtitle">{!! $rating->name !!} </div></th> 
|
||||
<th>
|
||||
<div class="ticketratingtitle">{!! $rating->name !!} </div>
|
||||
</th> 
|
||||
|
||||
<td>
|
||||
|
||||
<?php for ($i = 1; $i <= $rating->rating_scale; $i++) { ?>
|
||||
<input type="radio" class="star" id="star5" name="{!! $rating->name !!}" value="{!! $i !!}"<?php echo ($ratingval == $i) ? 'checked' : '' ?> />
|
||||
<input type="radio" class="star" id="star5"
|
||||
name="{!! $rating->name !!}"
|
||||
value="{!! $i !!}"<?php echo $ratingval == $i ? 'checked' : ''; ?> />
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -165,7 +205,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<div class="col-md-12 offset-md-5" id="loader" style="display:none;">
|
||||
|
||||
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|
||||
<img
|
||||
src="{{ asset('lb-faveo/media/images/gifloader.gif') }}"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
|
||||
</div>
|
||||
|
||||
<div id="refresh">
|
||||
@@ -218,17 +259,11 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<?php $status = App\Model\helpdesk\Ticket\Ticket_Status::where('id', '=', $tickets->status)->first(); ?>
|
||||
|
||||
@if ($status->id == 1)
|
||||
|
||||
<td title="{{ $status->properties }}" style="color:orange">{{ $status->name }}</td>
|
||||
|
||||
@elseif($status->id == 2)
|
||||
|
||||
<td title="{{ $status->properties }}" style="color:green">{{ $status->name }}</td>
|
||||
|
||||
@elseif($status->id == 3)
|
||||
|
||||
<td title="{{ $status->properties }}" style="color:green">{{ $status->name }}</td>
|
||||
|
||||
@endif
|
||||
</tr>
|
||||
|
||||
@@ -239,17 +274,14 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<?php $priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('priority_id', '=', $tickets->priority_id)->first(); ?>
|
||||
|
||||
@if ($priority->priority_id == 1)
|
||||
|
||||
<td title="{{$priority->priority_desc}}" style="color:green">{{$priority->priority_desc}}</td>
|
||||
|
||||
<td title="{{ $priority->priority_desc }}" style="color:green">
|
||||
{{ $priority->priority_desc }}</td>
|
||||
@elseif($priority->priority_id == 2)
|
||||
|
||||
<td title="{{$priority->priority_desc}}" style="color:orange">{{$priority->priority_desc}}</td>
|
||||
|
||||
<td title="{{ $priority->priority_desc }}" style="color:orange">
|
||||
{{ $priority->priority_desc }}</td>
|
||||
@elseif($priority->priority_id == 3)
|
||||
|
||||
<td title="{{$priority->priority_desc}}" style="color:red">{{$priority->priority_desc}}</td>
|
||||
|
||||
<td title="{{ $priority->priority_desc }}" style="color:red">
|
||||
{{ $priority->priority_desc }}</td>
|
||||
@endif
|
||||
</tr>
|
||||
|
||||
@@ -259,8 +291,10 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<?php
|
||||
$help_topic = App\Model\helpdesk\Manage\Help_topic::where('id', '=', $tickets->help_topic_id)->first();
|
||||
$department = App\Model\helpdesk\Agent\Department::where('id', '=', $help_topic->department)->first();
|
||||
$location = $tickets->location;
|
||||
?>
|
||||
<td title="{{ $department->name }}">{!! $department->name !!}</td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -284,10 +318,15 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<td>{{ ucwords($last->poster) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Địa điểm:</b></td>
|
||||
<td title="{{ $location->locationname }}">{!! $location->locationname !!}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="comments-area mb-0" id="comments">
|
||||
|
||||
<?php
|
||||
@@ -305,18 +344,21 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<article class="comment-body">
|
||||
|
||||
<footer class="comment-meta"
|
||||
<?php if ($role->role == "user") { ?> style="background-color: hsla(100, 100%, 51%, 0.15)" <?php } else { ?> style="background-color:#FFFCB3" <?php } ?>
|
||||
>
|
||||
<footer class="comment-meta" <?php if ($role->role == "user") { ?>
|
||||
style="background-color: hsla(100, 100%, 51%, 0.15)" <?php } else { ?>
|
||||
style="background-color:#FFFCB3" <?php } ?>>
|
||||
<div class="comment-author">
|
||||
|
||||
<img src="{{$role->profile_pic}}"alt="" height="50" width="50" class="avatar"
|
||||
<?php if ($role->role == "user") { ?>style="box-shadow: 0 1px 3px #00FF26;" <?php } else { ?> style="box-shadow: 0 1px 3px #FFEC00;" <?php } ?>
|
||||
>
|
||||
@if($role->role == "user")
|
||||
<b class="fn"><a href="#" rel="external" class="url">{{$role->user_name}}</a></b>
|
||||
<img src="{{ $role->profile_pic }}"alt="" height="50" width="50"
|
||||
class="avatar" <?php if ($role->role == "user") { ?>style="box-shadow: 0 1px 3px #00FF26;"
|
||||
<?php } else { ?> style="box-shadow: 0 1px 3px #FFEC00;"
|
||||
<?php } ?>>
|
||||
@if ($role->role == 'user')
|
||||
<b class="fn"><a href="#" rel="external"
|
||||
class="url">{{ $role->user_name }}</a></b>
|
||||
@else
|
||||
<b class="fn"><a href="#" rel="external" class="url">{{$role->first_name." ".$role->last_name}}</a></b>
|
||||
<b class="fn"><a href="#" rel="external"
|
||||
class="url">{{ $role->first_name . ' ' . $role->last_name }}</a></b>
|
||||
|
||||
<div class="ticketratings float-right" style="margin-top: -12px;">
|
||||
|
||||
@@ -336,11 +378,17 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<form class="foo2">
|
||||
{{ csrf_field() }}
|
||||
<tr>
|
||||
<th><div class="ticketratingtitle">{!! $rating->name !!} </div></th>
|
||||
<th>
|
||||
<div class="ticketratingtitle">
|
||||
{!! $rating->name !!} </div>
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<?php for ($i = 1; $i <= $rating->rating_scale; $i++) { ?>
|
||||
<input type="radio" class="star" id="star5" name="{!! $rating->name !!},{!! $conversation->id !!}" value="{!! $i !!}"<?php echo ($ratingval == $i) ? 'checked' : '' ?> />
|
||||
<input type="radio" class="star"
|
||||
id="star5"
|
||||
name="{!! $rating->name !!},{!! $conversation->id !!}"
|
||||
value="{!! $i !!}"<?php echo $ratingval == $i ? 'checked' : ''; ?> />
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -357,7 +405,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<small class="date text-muted">
|
||||
|
||||
<time datetime="2013-10-23T01:50:50+00:00"><i class="fa fa-clock-o"> </i> {{ UTC::usertimezone($conversation->created_at) }}</time>
|
||||
<time datetime="2013-10-23T01:50:50+00:00"><i class="fa fa-clock-o"> </i>
|
||||
{{ UTC::usertimezone($conversation->created_at) }}</time>
|
||||
</small>
|
||||
</div><!-- .comment-metadata -->
|
||||
</footer><!-- .comment-meta -->
|
||||
@@ -371,9 +420,12 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
<script>
|
||||
setTimeout(function() {
|
||||
var $iframe = "Id{{ $conversation->id }}";
|
||||
$('<iframe src="about:blank" id='+$iframe+' class="iframe" frameborder="0" scrolling="no" width="100%" style="height:1px"></iframe>').appendTo(".embed-responsive{{$conversation->id}}");
|
||||
$('<iframe src="about:blank" id=' + $iframe +
|
||||
' class="iframe" frameborder="0" scrolling="no" width="100%" style="height:1px"></iframe>')
|
||||
.appendTo(".embed-responsive{{ $conversation->id }}");
|
||||
setTimeout(function() {
|
||||
$('#'+$iframe).contents().find('body').append('<style>body{display:inline-block;}</style>');
|
||||
$('#' + $iframe).contents().find('body').append(
|
||||
'<style>body{display:inline-block;}</style>');
|
||||
}, 100);
|
||||
setTimeout(function() {
|
||||
var frameid = document.getElementById($iframe);
|
||||
@@ -428,7 +480,7 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
}
|
||||
}
|
||||
if ($i > 0) {
|
||||
echo "<hr style='border-top: 1px dotted #FFFFFF;margin-top:0px;margin-bottom:0px;background-color:#8B8C90;'><br><h5 class='entry-title'><b>" . $i . " </b> Attachments</h5>";
|
||||
echo "<hr style='border-top: 1px dotted #FFFFFF;margin-top:0px;margin-bottom:0px;background-color:#8B8C90;'><br><h5 class='entry-title'><b>" . $i . ' </b> Attachments</h5>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -492,7 +544,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<div id="respond" class="comment-respond form-border">
|
||||
|
||||
<h3 id="reply-title" class="comment-reply-title section-title"><i class="line"></i>{!! Lang::get('lang.leave_a_reply') !!}</h3>
|
||||
<h3 id="reply-title" class="comment-reply-title section-title"><i
|
||||
class="line"></i>{!! Lang::get('lang.leave_a_reply') !!}</h3>
|
||||
@if (Auth::user())
|
||||
{!! Form::open(['url' => 'post/reply/' . $id2 . '#formabc']) !!}
|
||||
@else
|
||||
@@ -508,7 +561,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
|
||||
<div class="text-right">
|
||||
|
||||
<button type="submit" onClick="return checkFunction();" class="btn btn-custom btn-lg" style="background-color: #009aba; hov: #00c0ef; color: #fff">{!! Lang::get('lang.post_comment') !!}</button>
|
||||
<button type="submit" onClick="return checkFunction();" class="btn btn-custom btn-lg"
|
||||
style="background-color: #009aba; hov: #00c0ef; color: #fff">{!! Lang::get('lang.post_comment') !!}</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
@@ -570,11 +624,10 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
// process the form
|
||||
$.ajax({
|
||||
type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
|
||||
url: '../rating/' +<?php echo $tickets->id ?>, // the url where we want to POST
|
||||
url: '../rating/' + <?php echo $tickets->id; ?>, // the url where we want to POST
|
||||
data: formData, // our data object
|
||||
dataType: 'json', // what type of data do we expect back from the server
|
||||
success: function () {
|
||||
}
|
||||
success: function() {}
|
||||
});
|
||||
// using the done promise callback
|
||||
// stop the form from submitting the normal way and refreshing the page
|
||||
@@ -589,11 +642,10 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
// process the form
|
||||
$.ajax({
|
||||
type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
|
||||
url: '../rating2/' +<?php echo $tickets->id ?>, // the url where we want to POST
|
||||
url: '../rating2/' + <?php echo $tickets->id; ?>, // the url where we want to POST
|
||||
data: formData, // our data object
|
||||
dataType: 'json', // what type of data do we expect back from the server
|
||||
success: function () {
|
||||
}
|
||||
success: function() {}
|
||||
});
|
||||
// using the done promise callback
|
||||
// stop the form from submitting the normal way and refreshing the page
|
||||
@@ -623,13 +675,16 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "../ticket/close/{{ $tickets->id }}",
|
||||
data:{"_token": "{{ csrf_token() }}"},
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}"
|
||||
},
|
||||
beforeSend: function() {
|
||||
$("#refresh").hide();
|
||||
$("#loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").load(
|
||||
"../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").show();
|
||||
$("#loader").hide();
|
||||
$("#d1").trigger("click");
|
||||
@@ -639,7 +694,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
setTimeout(function() {
|
||||
var link = document.querySelector('#load-inbox');
|
||||
var link = document.querySelector(
|
||||
'#load-inbox');
|
||||
if (link) {
|
||||
link.click();
|
||||
}
|
||||
@@ -655,13 +711,16 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "../ticket/resolve/{{ $tickets->id }}",
|
||||
data:{"_token": "{{ csrf_token() }}"},
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}"
|
||||
},
|
||||
beforeSend: function() {
|
||||
$("#refresh").hide();
|
||||
$("#loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").load(
|
||||
"../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").show();
|
||||
$("#loader").hide();
|
||||
var message = "Success! Your Ticket have been Resolved";
|
||||
@@ -670,7 +729,8 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
setTimeout(function() {
|
||||
var link = document.querySelector('#load-inbox');
|
||||
var link = document.querySelector(
|
||||
'#load-inbox');
|
||||
if (link) {
|
||||
link.click();
|
||||
}
|
||||
@@ -686,13 +746,16 @@ $thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Cryp
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "../ticket/open/{{ $tickets->id }}",
|
||||
data:{"_token": "{{ csrf_token() }}"},
|
||||
data: {
|
||||
"_token": "{{ csrf_token() }}"
|
||||
},
|
||||
beforeSend: function() {
|
||||
$("#refresh").hide();
|
||||
$("#loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").load(
|
||||
"../check_ticket/{!! $id !!} #refresh");
|
||||
$("#refresh").show();
|
||||
$("#loader").hide();
|
||||
|
||||
|
53
resources/views/themes/default1/client/helpdesk/form.blade.php
Executable file → Normal file
53
resources/views/themes/default1/client/helpdesk/form.blade.php
Executable file → Normal file
@@ -13,7 +13,8 @@ class = "nav-item active"
|
||||
<ol class="breadcrumb float-sm-right ">
|
||||
<style>
|
||||
.words {
|
||||
margin-right: 10px; /* Adjust the value to increase or decrease the gap between list items */
|
||||
margin-right: 10px;
|
||||
/* Adjust the value to increase or decrease the gap between list items */
|
||||
}
|
||||
</style>
|
||||
<li class="breadcrumb-item"> <i class="fas fa-home"> </i> {!! Lang::get('lang.you_are_here') !!} : </li>
|
||||
@@ -57,7 +58,8 @@ class = "nav-item active"
|
||||
{!! Form::text('email_address', null, ['class' => 'form-control form-group']) !!}
|
||||
{!! Form::label('ticket_number', Lang::get('lang.ticket_number')) !!}<span class="text-red"> *</span>
|
||||
{!! Form::text('ticket_number', null, ['class' => 'form-control form-group']) !!}
|
||||
<button type="submit" class="btn btn-info" style=" border-color: rgb(0, 192, 239); background-color: rgb(0, 154, 186) !important; color: white">
|
||||
<button type="submit" class="btn btn-info"
|
||||
style=" border-color: rgb(0, 192, 239); background-color: rgb(0, 154, 186) !important; color: white">
|
||||
<i class="fas fa-save"></i> {!! Lang::get('lang.check_ticket_status') !!}
|
||||
</button>
|
||||
{!! Form::close() !!}
|
||||
@@ -118,11 +120,8 @@ class = "nav-item active"
|
||||
<div class="row mt-4">
|
||||
|
||||
@if (Auth::user())
|
||||
|
||||
{!! Form::hidden('Name', Auth::user()->user_name, ['class' => 'form-control']) !!}
|
||||
|
||||
@else
|
||||
|
||||
<div class="col-md-12 form-group {{ $errors->has('Name') ? 'has-error' : '' }}">
|
||||
{!! Form::label('Name', Lang::get('lang.name')) !!}<span class="text-red"> *</span>
|
||||
{!! Form::text('Name', null, ['class' => 'form-control']) !!}
|
||||
@@ -132,7 +131,6 @@ class = "nav-item active"
|
||||
@if (Auth::user())
|
||||
|
||||
{!! Form::hidden('Email', Auth::user()->email, ['class' => 'form-control']) !!}
|
||||
|
||||
@else
|
||||
<div class="col-md-12 form-group {{ $errors->has('Email') ? 'has-error' : '' }}">
|
||||
{!! Form::label('Email', Lang::get('lang.email')) !!}
|
||||
@@ -151,7 +149,11 @@ class = "nav-item active"
|
||||
<span class="text-red"> *</span>
|
||||
@endif
|
||||
|
||||
{!! Form::text('Code',null,['class' => 'form-control', 'placeholder' => $phonecode, 'title' => Lang::get('lang.enter-country-phone-code')]) !!}
|
||||
{!! Form::text('Code', null, [
|
||||
'class' => 'form-control',
|
||||
'placeholder' => $phonecode,
|
||||
'title' => Lang::get('lang.enter-country-phone-code'),
|
||||
]) !!}
|
||||
</div>
|
||||
<div class="col-md-5 form-group {{ $errors->has('mobile') ? 'has-error' : '' }}">
|
||||
{!! Form::label('mobile', Lang::get('lang.mobile_number')) !!}
|
||||
@@ -176,7 +178,8 @@ class = "nav-item active"
|
||||
<?php
|
||||
$forms = App\Model\helpdesk\Form\Forms::get();
|
||||
$helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->get();
|
||||
// ?><!---->
|
||||
//
|
||||
?><!---->
|
||||
<select name="helptopic" class="form-control" id="selectid">
|
||||
|
||||
@foreach ($helptopic as $topic)
|
||||
@@ -194,7 +197,6 @@ class = "nav-item active"
|
||||
|
||||
@if (Auth::user()->active == 1)
|
||||
@if ($user_Priority == 1)
|
||||
|
||||
<div class="col-md-12 form-group">
|
||||
<div class="row">
|
||||
<div class="col-md-1">
|
||||
@@ -202,7 +204,9 @@ class = "nav-item active"
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<?php $Priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('status', '=', 1)->get(); ?>
|
||||
{!! Form::select('priority', ['Priority'=>$Priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!! Form::select('priority', ['Priority' => $Priority->pluck('priority_desc', 'priority_id')->toArray()], null, [
|
||||
'class' => 'form-control select',
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,6 +217,22 @@ class = "nav-item active"
|
||||
{!! Form::label('Subject', Lang::get('lang.subject')) !!}<span class="text-red"> *</span>
|
||||
{!! Form::text('Subject', null, ['class' => 'form-control']) !!}
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-2">
|
||||
<label for="location">Vị trí:</label>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<select name="location" class="form-control">
|
||||
<option value="">-- Chọn vị trí --</option>
|
||||
@foreach ($locations as $loc)
|
||||
<option value="{{ $loc->id }}"
|
||||
{{ old('location') == $loc->id ? 'selected' : '' }}>
|
||||
{{ $loc->locationname }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 form-group {{ $errors->has('Details') ? 'has-error' : '' }}">
|
||||
{!! Form::label('Details', Lang::get('lang.message')) !!}<span class="text-red"> *</span>
|
||||
{!! Form::textarea('Details', null, ['class' => 'form-control']) !!}
|
||||
@@ -226,7 +246,13 @@ class = "nav-item active"
|
||||
<div class="col-md-12" id="response"> </div>
|
||||
<div id="ss" class="xs-md-6 form-group {{ $errors->has('') ? 'has-error' : '' }}"> </div>
|
||||
<div class="col-md-12 form-group">
|
||||
{!! Form::button('<i class="fas fa-save"></i> ' . Lang::get('lang.submit'), ['type'=>'submit', 'class'=>'btn btn-info float-right', 'style'=>'style="border-color: rgb(0, 192, 239); background-color: rgb(0, 154, 186); color: white;', 'onclick' => 'this.disabled=true;this.innerHTML="Sending, please wait...";this.form.submit();', 'data-v-fce8d630']) !!}
|
||||
{!! Form::button('<i class="fas fa-save"></i> ' . Lang::get('lang.submit'), [
|
||||
'type' => 'submit',
|
||||
'class' => 'btn btn-info float-right',
|
||||
'style' => 'style="border-color: rgb(0, 192, 239); background-color: rgb(0, 154, 186); color: white;',
|
||||
'onclick' => 'this.disabled=true;this.innerHTML="Sending, please wait...";this.form.submit();',
|
||||
'data-v-fce8d630',
|
||||
]) !!}
|
||||
</div>
|
||||
<div class="col-md-12" id="response"> </div>
|
||||
<div id="ss" class="xs-md-6 form-group {{ $errors->has('') ? 'has-error' : '' }}"> </div>
|
||||
@@ -250,10 +276,13 @@ $(document).ready(function(){
|
||||
helpTopic = $("#selectid").val();
|
||||
send(helpTopic);
|
||||
});
|
||||
|
||||
function send(helpTopic) {
|
||||
$.ajax({
|
||||
url: "{{ url('/get-helptopic-form') }}",
|
||||
data:{'helptopic':helpTopic},
|
||||
data: {
|
||||
'helptopic': helpTopic
|
||||
},
|
||||
type: "GET",
|
||||
dataType: "html",
|
||||
success: function(response) {
|
||||
|
0
resources/views/themes/default1/client/helpdesk/guest-user/checkticket.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/guest-user/checkticket.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/guest-user/checkticket2.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/guest-user/checkticket2.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/guest-user/view_ticket.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/guest-user/view_ticket.blade.php
Executable file → Normal file
326
resources/views/themes/default1/client/helpdesk/ticket.blade.php
Executable file → Normal file
326
resources/views/themes/default1/client/helpdesk/ticket.blade.php
Executable file → Normal file
@@ -1,6 +1,6 @@
|
||||
@extends('themes.default1.client.layout.client')
|
||||
@section('HeadInclude')
|
||||
<link href="{{asset("lb-faveo/css/AdminLTE.css")}}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('lb-faveo/css/AdminLTE.css') }}" rel="stylesheet" type="text/css" />
|
||||
@stop
|
||||
<?php $user = App\User::where('id', '=', $ticket->user_id)->first(); ?>
|
||||
<?php $assignedto = App\User::where('id', '=', $ticket->assigned_to)->first(); ?>
|
||||
@@ -29,15 +29,20 @@
|
||||
<!-- <button type="button" class="btn btn-default"><i class="fa fa-edit" style="color:green;"> </i> Edit</button> -->
|
||||
|
||||
|
||||
<a href="{{url('ticket/print/'.$ticket->id)}}" target="_blank" class="btn btn-default"><i class="fa fa-print" style="color:blue;"> </i> Print</a>
|
||||
<a href="{{ url('ticket/print/' . $ticket->id) }}" target="_blank" class="btn btn-default"><i
|
||||
class="fa fa-print" style="color:blue;"> </i> Print</a>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="d1"><i class="fa fa-exchange" style="color:teal;" id="hidespin"> </i><i class="fa fa-spinner fa-spin" style="color:teal; display:none;" id="spin"></i>
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
|
||||
id="d1"><i class="fa fa-exchange" style="color:teal;" id="hidespin"> </i><i
|
||||
class="fa fa-spinner fa-spin" style="color:teal; display:none;" id="spin"></i>
|
||||
Change Status <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li id="close"><a href="#"><i class="fa fa-check" style="color:green;"> </i>Close</a></li>
|
||||
<li id="close"><a href="#"><i class="fa fa-check" style="color:green;"> </i>Close</a>
|
||||
</li>
|
||||
|
||||
<li id="resolved"><a href="#"><i class="fa fa-check-circle-o " style="color:green;"> </i> Resolved</a></li>
|
||||
<li id="resolved"><a href="#"><i class="fa fa-check-circle-o " style="color:green;"> </i>
|
||||
Resolved</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -103,16 +108,30 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
|
||||
<img src="{{ asset('lb-faveo/media/images/gifloader.gif') }}"><br /><br /><br />
|
||||
</div>
|
||||
</div>
|
||||
<div id="hide2">
|
||||
<div class="col-md-6">
|
||||
<table class="table table-hover"id="refresh">
|
||||
<tr><td><b>Ticket Number: </b></td><div><td>{{$ticket->ticket_number}}</td></div></tr>
|
||||
<tr><td><b>Priority:</b></td> <?php $priority = App\Model\Ticket\Ticket_Priority::where('priority_id', '=', $ticket->priority_id)->first();?><td title="{{$priority->priority_desc}}">{{$priority->priority_desc}}</td></tr>
|
||||
<tr><td><b>Department:</b></td> <?php $help_topic = App\Model\Manage\Help_topic::where('id', '=', $ticket->help_topic_id)->first();?><td title="{{$help_topic->topic}}">{{$help_topic->topic}}</td></tr>
|
||||
<tr><td><b>Email:</b></td><td>{{$user->email}}</td></tr>
|
||||
<tr>
|
||||
<td><b>Ticket Number: </b></td>
|
||||
<div>
|
||||
<td>{{ $ticket->ticket_number }}</td>
|
||||
</div>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Priority:</b></td> <?php $priority = App\Model\Ticket\Ticket_Priority::where('priority_id', '=', $ticket->priority_id)->first(); ?><td
|
||||
title="{{ $priority->priority_desc }}">{{ $priority->priority_desc }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Department:</b></td> <?php $help_topic = App\Model\Manage\Help_topic::where('id', '=', $ticket->help_topic_id)->first(); ?><td
|
||||
title="{{ $help_topic->topic }}">{{ $help_topic->topic }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Email:</b></td>
|
||||
<td>{{ $user->email }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
@@ -122,28 +141,49 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
$TicketData = App\Model\Ticket\Ticket_Thread::where('ticket_id', '=', $thread->ticket_id)->max('id');
|
||||
$TicketDatarow = App\Model\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first();
|
||||
$LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first();
|
||||
if($LastResponse->role == "user") {
|
||||
$rep = "#F39C12";
|
||||
if ($LastResponse->role == 'user') {
|
||||
$rep = '#F39C12';
|
||||
$username = $LastResponse->user_name;
|
||||
} else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name;
|
||||
} else {
|
||||
$rep = '#000';
|
||||
$username = $LastResponse->first_name . ' ' . $LastResponse->last_name;
|
||||
if ($LastResponse->first_name == null || $LastResponse->last_name == null) {
|
||||
$username = $LastResponse->user_name;
|
||||
}}
|
||||
if($ticket->source > 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
if ($ticket->source > 0) {
|
||||
$ticket_source = App\Model\Ticket\Ticket_source::where('id', '=', $ticket->source)->first();
|
||||
$ticket_source = $ticket_source->value;
|
||||
}
|
||||
else
|
||||
} else {
|
||||
$ticket_source = $ticket->source;
|
||||
}
|
||||
|
||||
?>
|
||||
<table class="table table-hover">
|
||||
@if($user_phone != null)<tr><td><b>Phone:</b></td> <td>{{$user_phone->mobile}}</td></tr>@endif
|
||||
<tr><td><b>Status:</b></td> <div><?php $status = App\Model\Ticket\Ticket_Status::where('id', '=', $ticket->status)->first();?><td title="{{$status->properties}}">{{$status->name}}</td></div></tr>
|
||||
<tr><td><b>Help Topic:</b></td> <?php $help_topic = App\Model\Manage\Help_topic::where('id', '=', $ticket->help_topic_id)->first();?><td title="{{$help_topic->topic}}">{{$help_topic->topic}}</td></tr>
|
||||
<tr><td><b>Last Message:</b></td> <td>{{$username}}</td></tr>
|
||||
<tr><td><b>Source:</b></td> <td>{{$ticket_source}}</td></tr>
|
||||
@if ($user_phone != null)
|
||||
<tr>
|
||||
<td><b>Phone:</b></td>
|
||||
<td>{{ $user_phone->mobile }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<td><b>Status:</b></td>
|
||||
<div><?php $status = App\Model\Ticket\Ticket_Status::where('id', '=', $ticket->status)->first(); ?><td title="{{ $status->properties }}">{{ $status->name }}
|
||||
</td>
|
||||
</div>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Help Topic:</b></td> <?php $help_topic = App\Model\Manage\Help_topic::where('id', '=', $ticket->help_topic_id)->first(); ?><td
|
||||
title="{{ $help_topic->topic }}">{{ $help_topic->topic }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Last Message:</b></td>
|
||||
<td>{{ $username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Source:</b></td>
|
||||
<td>{{ $ticket_source }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -156,22 +196,26 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
<div class='col-xs-12'>
|
||||
<div class="nav-tabs-custom">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#General" data-toggle="tab" style="color:green;" id="aa"><i class="fa fa-reply-all"> </i> Reply</a></li>
|
||||
<li class="active"><a href="#General" data-toggle="tab" style="color:green;" id="aa"><i
|
||||
class="fa fa-reply-all"> </i> Reply</a></li>
|
||||
<!-- <li><a href="#Reply" data-toggle="tab" style="color:orange;"><i class="fa fa-mail-forward" > </i> Forward</a></li> -->
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div id="alert21" class="alert alert-success alert-dismissable" style="display:none;">
|
||||
<button id="dismiss21" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<button id="dismiss21" type="button" class="close" data-dismiss="alert"
|
||||
aria-hidden="true">×</button>
|
||||
<h4><i class="icon fa fa-check"></i>Alert!</h4>
|
||||
<div id="message-success2"></div>
|
||||
</div>
|
||||
<div id="alert22" class="alert alert-warning alert-dismissable" style="display:none;">
|
||||
<button id="dismiss22" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<button id="dismiss22" type="button" class="close" data-dismiss="alert"
|
||||
aria-hidden="true">×</button>
|
||||
<h4><i class="icon fa fa-warning"></i>Alert!</h4>
|
||||
<div id="message-warning2"></div>
|
||||
</div>
|
||||
<div id="alert23" class="alert alert-danger alert-dismissable" style="display:none;">
|
||||
<button id="dismiss23" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<button id="dismiss23" type="button" class="close" data-dismiss="alert"
|
||||
aria-hidden="true">×</button>
|
||||
<h4><i class="icon fa fa-ban"></i>Alert!</h4>
|
||||
<div id="message-danger2"></div>
|
||||
</div>
|
||||
@@ -182,7 +226,7 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
|
||||
<img src="{{ asset('lb-faveo/media/images/gifloader.gif') }}"><br /><br /><br />
|
||||
</div>
|
||||
</br>
|
||||
</br>
|
||||
@@ -206,7 +250,12 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
{!! Form::label('To', 'To:') !!}
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
{!! Form::text('To','support@faveohelpdesk.com',array('disabled'),['id'=>'email','class'=>'form-control','style'=>'width:55%'])!!}
|
||||
{!! Form::text(
|
||||
'To',
|
||||
'support@faveohelpdesk.com',
|
||||
['disabled'],
|
||||
['id' => 'email', 'class' => 'form-control', 'style' => 'width:55%'],
|
||||
) !!}
|
||||
{!! $errors->first('To', '<spam class="help-block text-red">:message</spam>') !!}
|
||||
|
||||
|
||||
@@ -238,7 +287,9 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
<div class="form-group {{ $errors->has('title') ? 'has-error' : '' }}">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-10">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-check-square-o" style="color:white;"> </i> Update</button>
|
||||
<button type="submit" class="btn btn-primary"><i
|
||||
class="fa fa-check-square-o" style="color:white;"> </i>
|
||||
Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -269,7 +320,9 @@ echo UTC::usertimezone(date_format($time, 'd/m/Y H:i:s'));
|
||||
<div class="form-group {{ $errors->has('title') ? 'has-error' : '' }}">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-10">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-check-square-o" style="color:white;"> </i> Update</button>
|
||||
<button type="submit" class="btn btn-primary"><i
|
||||
class="fa fa-check-square-o" style="color:white;"> </i>
|
||||
Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -379,11 +432,13 @@ $data = $ConvDate[0];
|
||||
<?php if($conversation->is_internal) { ?>
|
||||
<i class="fa fa-tag bg-purple" title="Posted by System"></i>
|
||||
<?php }else{ if ($role->role == 'agent' || $role->role == 'admin') { ?>
|
||||
<i class="fa fa-mail-reply-all bg-yellow" title="<?= Lang::get('lang.posted_by_support_team') ?>"></i>
|
||||
<i class="fa fa-mail-reply-all bg-yellow"
|
||||
title="<?= Lang::get('lang.posted_by_support_team') ?>"></i>
|
||||
<?php } elseif ($role->role == 'user') { ?>
|
||||
<i class="fa fa-user bg-aqua" title="<?= Lang::get('lang.posted_by_customer') ?>"></i>
|
||||
<?php } else { ?>
|
||||
<i class="fa fa-mail-reply-all bg-purple" title="<?= Lang::get('lang.posted_by_system') ?>"></i>
|
||||
<i class="fa fa-mail-reply-all bg-purple"
|
||||
title="<?= Lang::get('lang.posted_by_system') ?>"></i>
|
||||
<?php } }
|
||||
$attachment = App\Model\Ticket\Ticket_attachments::where('thread_id','=',$conversation->id)->first();
|
||||
if($attachment == null ) {
|
||||
@@ -450,49 +505,48 @@ $data = $ConvDate[0];
|
||||
|
||||
<?php
|
||||
$string = $body;
|
||||
$start = "<head>";
|
||||
$end = "</head>";
|
||||
if(strpos($string,$start) == false || strpos($string,$start) == false)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
$start = '<head>';
|
||||
$end = '</head>';
|
||||
if (strpos($string, $start) == false || strpos($string, $start) == false) {
|
||||
} else {
|
||||
$ini = strpos($string, $start);
|
||||
$ini += strlen($start);
|
||||
$len = strpos($string, $end, $ini) - $ini;
|
||||
$parsed = substr($string, $ini, $len);
|
||||
$body2 = $parsed;
|
||||
$body = str_replace($body2 ," " ,$body);
|
||||
$body = str_replace($body2, ' ', $body);
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="timeline-item">
|
||||
<span id="date" class="time" style="color:#fff;"><i class="fa fa-clock-o"> </i> {{date_format($conversation->created_at, 'd/m/Y H:i:s')}}</span>
|
||||
<h3 class="timeline-header" style="background-color:<?php
|
||||
if($conversation->is_internal)
|
||||
{
|
||||
<span id="date" class="time" style="color:#fff;"><i
|
||||
class="fa fa-clock-o"> </i>
|
||||
{{ date_format($conversation->created_at, 'd/m/Y H:i:s') }}</span>
|
||||
<h3 class="timeline-header"
|
||||
style="background-color:<?php
|
||||
if ($conversation->is_internal) {
|
||||
$color = '#046380';
|
||||
echo $color;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($role->role == 'agent' || $role->role == 'admin')
|
||||
{
|
||||
} else {
|
||||
if ($role->role == 'agent' || $role->role == 'admin') {
|
||||
$color = '#FFD34E';
|
||||
echo $color;
|
||||
} elseif ($role->role == 'user')
|
||||
{
|
||||
} elseif ($role->role == 'user') {
|
||||
$color = '#00A388';
|
||||
echo $color;
|
||||
} else
|
||||
{
|
||||
} else {
|
||||
$color = '#046380';
|
||||
echo $color;
|
||||
}
|
||||
}
|
||||
?>;
|
||||
">
|
||||
<a href="#" style="color:#fff;"><?php if($role->role == "user") {echo $role->user_name; } else { echo $role->first_name . " " . $role->last_name; } ?> </a></h3>
|
||||
<a href="#" style="color:#fff;"><?php if ($role->role == 'user') {
|
||||
echo $role->user_name;
|
||||
} else {
|
||||
echo $role->first_name . ' ' . $role->last_name;
|
||||
} ?> </a>
|
||||
</h3>
|
||||
<div class="timeline-body">
|
||||
{!! $body !!}
|
||||
|
||||
@@ -509,26 +563,20 @@ $data = $ConvDate[0];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if($i>0)
|
||||
{
|
||||
echo "<hr style='border-top: 1px dotted #FFFFFF;margin-top:0px;margin-bottom:0px;background-color:#8B8C90;'><h4 class='box-title'><b>".$i." </b> Attachments</h4>";
|
||||
if ($i > 0) {
|
||||
echo "<hr style='border-top: 1px dotted #FFFFFF;margin-top:0px;margin-bottom:0px;background-color:#8B8C90;'><h4 class='box-title'><b>" . $i . ' </b> Attachments</h4>';
|
||||
}
|
||||
?>
|
||||
<ul class='mailbox-attachments clearfix'>
|
||||
<?php
|
||||
foreach($attachments as $attachment)
|
||||
{
|
||||
|
||||
foreach ($attachments as $attachment) {
|
||||
$size = $attachment->size;
|
||||
$units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
$power = $size > 0 ? floor(log($size, 1024)) : 0;
|
||||
$value = number_format($size / pow(1024, $power), 2, '.', ',') . ' ' . $units[$power];
|
||||
|
||||
|
||||
if($attachment->poster == 'ATTACHMENT')
|
||||
{
|
||||
if($attachment->type == 'jpg'||$attachment->type == 'JPG'||$attachment->type == 'jpeg'||$attachment->type == 'JPEG'||$attachment->type == 'png'||$attachment->type == 'PNG'||$attachment->type == 'gif'||$attachment->type == 'GIF')
|
||||
{
|
||||
if ($attachment->poster == 'ATTACHMENT') {
|
||||
if ($attachment->type == 'jpg' || $attachment->type == 'JPG' || $attachment->type == 'jpeg' || $attachment->type == 'JPEG' || $attachment->type == 'png' || $attachment->type == 'PNG' || $attachment->type == 'gif' || $attachment->type == 'GIF') {
|
||||
$image = @imagecreatefromstring($attachment->file);
|
||||
ob_start();
|
||||
imagejpeg($image, null, 80);
|
||||
@@ -536,11 +584,8 @@ $data = $ConvDate[0];
|
||||
ob_end_clean();
|
||||
$var = '<a href="' . URL::route('image', ['image_id' => $attachment->id]) . '" target="_blank"><img style="max-width:200px;height:133px;" src="data:image/jpg;base64,' . base64_encode($data) . '"/></a>';
|
||||
|
||||
|
||||
echo '<li style="background-color:#f4f4f4;"><span class="mailbox-attachment-icon has-img">' . $var . '</span><div class="mailbox-attachment-info"><b style="word-wrap: break-word;">' . $attachment->name . '</b><br/><p>' . $value . '</p></div></li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$var = '<a style="max-width:200px;height:133px;color:#666;" href="' . URL::route('image', ['image_id' => $attachment->id]) . '" target="_blank"><span class="mailbox-attachment-icon" style="background-color:#fff;">' . strtoupper($attachment->type) . '</span><div class="mailbox-attachment-info"><span ><b style="word-wrap: break-word;">' . $attachment->name . '</b><br/><p>' . $value . '</p></span></div></a>';
|
||||
echo '<li style="background-color:#f4f4f4;">' . $var . '</li>';
|
||||
}
|
||||
@@ -551,7 +596,7 @@ $data = $ConvDate[0];
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<?php $lastid = $conversation->id?>
|
||||
<?php $lastid = $conversation->id; ?>
|
||||
<?php }
|
||||
?>
|
||||
<li>
|
||||
@@ -578,13 +623,15 @@ $data = $ConvDate[0];
|
||||
<div class="modal-content">
|
||||
{!! Form::model($ticket->id, ['id' => 'form', 'method' => 'PATCH']) !!}
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Edit <b>[#{!! $ticket->ticket_number !!}]</b>[{!! $user->user_name !!}]</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="hide">
|
||||
<div class="form-group">
|
||||
<label>Title</label>
|
||||
<input type="text" name="subject" class="form-control" value="{{$thread->title}}" required>
|
||||
<input type="text" name="subject" class="form-control" value="{{ $thread->title }}"
|
||||
required>
|
||||
{!! $errors->first('subject', '<spam class="help-block text-red">:message</spam>') !!}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -598,12 +645,13 @@ $data = $ConvDate[0];
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
|
||||
<img src="{{ asset('lb-faveo/media/images/gifloader.gif') }}"><br /><br /><br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis">Close</button>
|
||||
<input type="submit" class="btn btn-primary pull-right" value="Update">
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
@@ -615,7 +663,8 @@ $data = $ConvDate[0];
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Ban Email</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -623,7 +672,8 @@ $data = $ConvDate[0];
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis2">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis2">Close</button>
|
||||
<button id="ban" type="button" class="btn btn-warning pull-right">Ban Email</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
@@ -636,7 +686,8 @@ $data = $ConvDate[0];
|
||||
<div class="modal-content">
|
||||
{!! Form::model($ticket->id, ['id' => 'form4', 'method' => 'PATCH']) !!}
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Change Owner for ticket <b>#{!! $ticket->ticket_number !!}</b></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -647,14 +698,17 @@ $data = $ConvDate[0];
|
||||
<select name="SelectOwner" class="form-control">
|
||||
@foreach ($users as $user)
|
||||
@if ($user->id !== $ticket->user_id)
|
||||
<option value="{!! $user->user_name !!}">{!! $user->user_name !!}({!! $user->email !!})</option>
|
||||
<option value="{!! $user->user_name !!}">
|
||||
{!! $user->user_name !!}({!! $user->email !!})</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</select>
|
||||
<!-- <spam class="glyphicon glyphicon-search form-control-feedback"></spam> -->
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-2"><spam class="glyphicon glyphicon-user fa-5x"></spam></div>
|
||||
<div class="col-md-2">
|
||||
<spam class="glyphicon glyphicon-user fa-5x"></spam>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<?php $user = App\User::where('id', '=', $ticket->user_id)->first(); ?>
|
||||
|
||||
@@ -669,7 +723,8 @@ $data = $ConvDate[0];
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis2">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis2">Close</button>
|
||||
<button id="ban" type="button" class="btn btn-warning pull-right">Submit</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
@@ -682,7 +737,8 @@ $data = $ConvDate[0];
|
||||
<div class="modal-content">
|
||||
{!! Form::open(['id' => 'form1', 'method' => 'PATCH']) !!}
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Assign</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -696,7 +752,8 @@ $data = $ConvDate[0];
|
||||
</select>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis4">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis4">Close</button>
|
||||
<button type="submit" class="btn btn-success pull-right" id="submt2">Assign</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
@@ -708,14 +765,16 @@ $data = $ConvDate[0];
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Surrender</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Are you sure you want to surrender this Ticket?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis6">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis6">Close</button>
|
||||
<button type="button" class="btn btn-warning pull-right" id="Surrender">Surrender</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
@@ -727,7 +786,8 @@ $data = $ConvDate[0];
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Add Collaborator</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -738,7 +798,8 @@ $data = $ConvDate[0];
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis6">Close</button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"
|
||||
id="dismis6">Close</button>
|
||||
<button type="button" class="btn btn-warning pull-right" id="Surrender">Surrender</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
@@ -750,7 +811,6 @@ $data = $ConvDate[0];
|
||||
</div>
|
||||
<!-- scripts used on page -->
|
||||
<script type="text/javascript">
|
||||
|
||||
function AddCcc() {
|
||||
|
||||
}
|
||||
@@ -777,7 +837,9 @@ function AddCcc(){
|
||||
var message = "Success! Your Ticket have been Closed";
|
||||
$("#alert11").show();
|
||||
$('#message-success1').html(message);
|
||||
setInterval(function(){$("#alert11").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
}, 4000);
|
||||
}
|
||||
})
|
||||
return false;
|
||||
@@ -800,7 +862,9 @@ function AddCcc(){
|
||||
var message = "Success! Your Ticket have been Resolved";
|
||||
$("#alert11").show();
|
||||
$('#message-success1').html(message);
|
||||
setInterval(function(){$("#alert11").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
}, 4000);
|
||||
}
|
||||
})
|
||||
return false;
|
||||
@@ -823,7 +887,9 @@ function AddCcc(){
|
||||
var message = "Success! Your Ticket have been Opened";
|
||||
$("#alert11").show();
|
||||
$('#message-success1').html(message);
|
||||
setInterval(function(){$("#alert11").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
}, 4000);
|
||||
|
||||
}
|
||||
})
|
||||
@@ -847,7 +913,9 @@ function AddCcc(){
|
||||
var message = "Success! Your Ticket have been moved to Trash";
|
||||
$("#alert11").show();
|
||||
$('#message-success1').html(message);
|
||||
setInterval(function(){$("#alert11").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
}, 4000);
|
||||
}
|
||||
})
|
||||
return false;
|
||||
@@ -864,7 +932,9 @@ function AddCcc(){
|
||||
var message = "Success! This Email have been banned";
|
||||
$("#alert11").show();
|
||||
$('#message-success1').html(message);
|
||||
setInterval(function(){$("#alert11").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert11").hide();
|
||||
}, 4000);
|
||||
}
|
||||
})
|
||||
return false;
|
||||
@@ -900,12 +970,9 @@ function AddCcc(){
|
||||
$("#dismis").trigger("click");
|
||||
$("#refresh1").load("../thread/{{ $ticket->id }} #refresh1");
|
||||
$("#refresh2").load("../thread/{{ $ticket->id }} #refresh2");
|
||||
if (response == 1)
|
||||
{
|
||||
if (response == 1) {
|
||||
alert('Updated successfully');
|
||||
}
|
||||
else if (response == 0)
|
||||
{
|
||||
} else if (response == 0) {
|
||||
alert('Please check all your fields');
|
||||
}
|
||||
|
||||
@@ -948,24 +1015,27 @@ function AddCcc(){
|
||||
},
|
||||
success: function(response) {
|
||||
|
||||
if (response == 1)
|
||||
{
|
||||
if (response == 1) {
|
||||
$("#refresh1").load("../thread/{{ $ticket->id }} #refresh1");
|
||||
// $("#t4").load("../thread/{{ $ticket->id }} #t4");
|
||||
var message = "Success! You have successfully replied to your ticket";
|
||||
var message =
|
||||
"Success! You have successfully replied to your ticket";
|
||||
$("#alert21").show();
|
||||
$('#message-success2').html(message);
|
||||
setInterval(function(){$("#alert21").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert21").hide();
|
||||
}, 4000);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// alert('fail');
|
||||
var message = "Fail! For some reason your message was not posted. Please try again later";
|
||||
var message =
|
||||
"Fail! For some reason your message was not posted. Please try again later";
|
||||
$("#alert23").show();
|
||||
$('#message-danger2').html(message);
|
||||
setInterval(function(){$("#alert23").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert23").hide();
|
||||
}, 4000);
|
||||
// $( "#dismis4" ).trigger( "click" );
|
||||
|
||||
}
|
||||
@@ -991,23 +1061,26 @@ function AddCcc(){
|
||||
|
||||
success: function(response) {
|
||||
|
||||
if (response == 1)
|
||||
{
|
||||
if (response == 1) {
|
||||
$("#refresh1").load("../thread/{{ $ticket->id }} #refresh1");
|
||||
// $("#t1").load("../thread/{{ $ticket->id }} #t1");
|
||||
var message = "Success! You have successfully replied to your ticket";
|
||||
var message =
|
||||
"Success! You have successfully replied to your ticket";
|
||||
$("#alert21").show();
|
||||
$('#message-success2').html(message);
|
||||
setInterval(function(){$("#alert21").hide(); },4000);
|
||||
}
|
||||
else
|
||||
{
|
||||
setInterval(function() {
|
||||
$("#alert21").hide();
|
||||
}, 4000);
|
||||
} else {
|
||||
// alert('fail');
|
||||
// $( "#dismis4" ).trigger( "click" );
|
||||
var message = "Fail! For some reason your reply was not posted. Please try again later";
|
||||
var message =
|
||||
"Fail! For some reason your reply was not posted. Please try again later";
|
||||
$("#alert23").show();
|
||||
$('#message-danger2').html(message);
|
||||
setInterval(function(){$("#alert23").hide(); },4000);
|
||||
setInterval(function() {
|
||||
$("#alert23").hide();
|
||||
}, 4000);
|
||||
}
|
||||
$("#show3").hide();
|
||||
$("#t1").show();
|
||||
@@ -1023,21 +1096,22 @@ function AddCcc(){
|
||||
url: "../ticket/surrender/{{ $ticket->id }}",
|
||||
success: function(response) {
|
||||
|
||||
if (response == 1)
|
||||
{
|
||||
if (response == 1) {
|
||||
// alert('ticket has been un assigned');
|
||||
var message = "Success! You have Unassigned your ticket";
|
||||
$("#alert21").show();
|
||||
$('#message-success2').html(message);
|
||||
setInterval(function(){$("#dismiss21").trigger("click"); },2000);
|
||||
setInterval(function() {
|
||||
$("#dismiss21").trigger("click");
|
||||
}, 2000);
|
||||
// $("#refresh1").load( "http://localhost/faveo/public/thread/{{ $ticket->id }} #refresh1");
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var message = "Fail! For some reason your request failed";
|
||||
$("#alert23").show();
|
||||
$('#message-danger2').html(message);
|
||||
setInterval(function(){$("#dismiss23").trigger("click"); },2000);
|
||||
setInterval(function() {
|
||||
$("#dismiss23").trigger("click");
|
||||
}, 2000);
|
||||
// alert('fail');
|
||||
// $( "#dismis4" ).trigger( "click" );
|
||||
}
|
||||
@@ -1178,11 +1252,11 @@ function AddCcc(){
|
||||
}
|
||||
});
|
||||
//End of Autopopulate
|
||||
|
||||
|
||||
</script>
|
||||
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
|
||||
<script type="text/javascript">
|
||||
bkLib.onDomLoaded(nicEditors.allTextAreas);
|
||||
</script>
|
||||
@stop
|
||||
|
||||
{{-- // <script type="text/javascript" src="{{asset('nicedit.js')}}"></script> --}}
|
0
resources/views/themes/default1/client/helpdesk/unauth/showticket.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/helpdesk/unauth/showticket.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/kb/article-list/articles.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/kb/article-list/articles.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/kb/article-list/home.blade.php
Executable file → Normal file
0
resources/views/themes/default1/client/kb/article-list/home.blade.php
Executable file → Normal file
0
resources/views/vendor/Chumper/tickets-javascript.blade.php
vendored
Executable file → Normal file
0
resources/views/vendor/Chumper/tickets-javascript.blade.php
vendored
Executable file → Normal file
@@ -491,6 +491,7 @@ Route::middleware('web')->group(function () {
|
||||
| Here defining Guest User's routes
|
||||
|
|
||||
|
|
||||
|
||||
*/
|
||||
// seasrch
|
||||
// Route::POST('tickets/search/', function () {
|
||||
|
3
storage/clockwork/.gitignore
vendored
Normal file
3
storage/clockwork/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
*.json
|
||||
*.json.gz
|
||||
index
|
5
vendor/autoload.php
vendored
5
vendor/autoload.php
vendored
@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
throw new RuntimeException($err);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
0
vendor/aws/aws-crt-php/format-check.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/format-check.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/gen_stub.php
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/gen_stub.php
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/prepare_package_xml.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/prepare_package_xml.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/prepare_release.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/prepare_release.sh
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/run_tests
vendored
Executable file → Normal file
0
vendor/aws/aws-crt-php/run_tests
vendored
Executable file → Normal file
0
vendor/beyondcode/laravel-query-detector/src/QueryDetector.php
vendored
Executable file → Normal file
0
vendor/beyondcode/laravel-query-detector/src/QueryDetector.php
vendored
Executable file → Normal file
0
vendor/bin/carbon
vendored
Executable file → Normal file
0
vendor/bin/carbon
vendored
Executable file → Normal file
0
vendor/bin/doctrine-dbal
vendored
Executable file → Normal file
0
vendor/bin/doctrine-dbal
vendored
Executable file → Normal file
0
vendor/bin/jp.php
vendored
Executable file → Normal file
0
vendor/bin/jp.php
vendored
Executable file → Normal file
0
vendor/bin/patch-type-declarations
vendored
Executable file → Normal file
0
vendor/bin/patch-type-declarations
vendored
Executable file → Normal file
0
vendor/bin/php-parse
vendored
Executable file → Normal file
0
vendor/bin/php-parse
vendored
Executable file → Normal file
0
vendor/bin/phpspec
vendored
Executable file → Normal file
0
vendor/bin/phpspec
vendored
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user