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 : #.#.#
|
- Faveo Version : #.#.#
|
||||||
|
- Product Name :
|
||||||
- PHP version :
|
- PHP version :
|
||||||
- Database Driver & Version :
|
- Database Driver & Version :
|
||||||
- Server specification :
|
- Server specification :
|
||||||
|
|
||||||
|
#### Product Type
|
||||||
|
- [ ] Open Source
|
||||||
|
|
||||||
|
- [ ] Paid
|
||||||
|
|
||||||
|
|
||||||
#### Description:
|
#### Description:
|
||||||
|
|
||||||
|
|
||||||
@@ -16,3 +23,5 @@
|
|||||||
- [ ] development-branch
|
- [ ] development-branch
|
||||||
|
|
||||||
- [ ] release-tag
|
- [ ] 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
|
* 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
|
* 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
|
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>
|
<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>
|
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
|
Faveo Community
|
||||||
--------------------------
|
--------------------------
|
||||||
Join Faveo discussion group and stay tuned to latest updates.<br/>
|
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>
|
* Join us on <a href="https://www.linkedin.com/groups/8429668" target="_blank">LinkedIn</a>
|
||||||
<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://join.slack.com/t/faveocommunity/shared_invite/enQtNDU0NTcxNTA0ODIwLTAzN2VkNDhjMDFmNGJmNmUwYTkxYzE4OGI3ZDUyZGQ2ZDY5NjU2YmY4ZjU3YWNlNTA3N2JkOTk1ZmNiM2ZlY2U" target="_blank">Slack</a>
|
||||||
|
|
||||||
Support the community edition
|
Support the community edition
|
||||||
--------------------------
|
--------------------------
|
||||||
@@ -105,9 +104,10 @@ Check mark versions are supported with security patches.
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 2.0.1 | :white_check_mark: |
|
| 2.0.3 | :white_check_mark: |
|
||||||
| 2.0.0 | :x: |
|
| 2.0.2 | :x: |
|
||||||
| < 1.0 | :x: |
|
| 2.0.1 | :x: |
|
||||||
|
| < 2.0 | :x: |
|
||||||
|
|
||||||
## Supported Updates
|
## 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');
|
$url = $url.'/api/v1/helpdesk/check-url?api_key='.$this->request->input('api_key').'&token='.\Config::get('app.token');
|
||||||
$result = $this->CallGetApi($url);
|
$result = $this->CallGetApi($url);
|
||||||
|
|
||||||
//dd($result);
|
//dd($result);
|
||||||
return response()->json(compact('result'));
|
return response()->json(compact('result'));
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
|
@@ -42,6 +42,7 @@ class ApiExceptAuthController extends Controller
|
|||||||
$url = $url.'api/v1/helpdesk/check-url';
|
$url = $url.'api/v1/helpdesk/check-url';
|
||||||
//return $url;
|
//return $url;
|
||||||
$result = $this->CallGetApi($url);
|
$result = $this->CallGetApi($url);
|
||||||
|
|
||||||
// dd($result);
|
// dd($result);
|
||||||
return response()->json(compact('result'));
|
return response()->json(compact('result'));
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
|
@@ -64,6 +64,7 @@ class TokenAuthController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$user_id = \Auth::user();
|
$user_id = \Auth::user();
|
||||||
|
|
||||||
// if no errors are encountered we can return a JWT
|
// if no errors are encountered we can return a JWT
|
||||||
return response()->json(compact('token', 'user_id'));
|
return response()->json(compact('token', 'user_id'));
|
||||||
}
|
}
|
||||||
@@ -91,6 +92,7 @@ class TokenAuthController extends Controller
|
|||||||
|
|
||||||
return response()->json(compact('error'));
|
return response()->json(compact('error'));
|
||||||
}
|
}
|
||||||
|
|
||||||
//dd($user);
|
//dd($user);
|
||||||
return response()->json(compact('user'));
|
return response()->json(compact('user'));
|
||||||
}
|
}
|
||||||
@@ -174,8 +176,8 @@ class TokenAuthController extends Controller
|
|||||||
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->first();
|
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->first();
|
||||||
if (isset($password_reset_table)) {
|
if (isset($password_reset_table)) {
|
||||||
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
||||||
// $password_reset_table->token = $code;
|
// $password_reset_table->token = $code;
|
||||||
// $password_reset_table->update(['token' => $code]);
|
// $password_reset_table->update(['token' => $code]);
|
||||||
} else {
|
} else {
|
||||||
$create_password_reset = \DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
$create_password_reset = \DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
||||||
}
|
}
|
||||||
|
@@ -235,6 +235,7 @@ class AgentController extends Controller
|
|||||||
foreach ($requests as $req) {
|
foreach ($requests as $req) {
|
||||||
DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]);
|
DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Todo For success and failure conditions
|
//Todo For success and failure conditions
|
||||||
try {
|
try {
|
||||||
if ($request->input('country_code') != '' or $request->input('country_code') != null) {
|
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++) {
|
for ($i = 0; $i < $length; $i++) {
|
||||||
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
||||||
}
|
}
|
||||||
|
|
||||||
// return random string
|
// return random string
|
||||||
return $randomString;
|
return $randomString;
|
||||||
}
|
}
|
||||||
|
@@ -87,6 +87,7 @@ class BanlistController extends Controller
|
|||||||
$use->ban = $request->input('ban');
|
$use->ban = $request->input('ban');
|
||||||
$use->internal_note = $request->input('internal_note');
|
$use->internal_note = $request->input('internal_note');
|
||||||
$use->save();
|
$use->save();
|
||||||
|
|
||||||
// $user->create($request->input())->save();
|
// $user->create($request->input())->save();
|
||||||
return redirect('banlist')->with('success', Lang::get('lang.email_banned_sucessfully'));
|
return redirect('banlist')->with('success', Lang::get('lang.email_banned_sucessfully'));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -380,6 +380,7 @@ class EmailsController extends Controller
|
|||||||
}
|
}
|
||||||
//dd($ex->getMessage());
|
//dd($ex->getMessage());
|
||||||
loging('mail-config', $message);
|
loging('mail-config', $message);
|
||||||
|
|
||||||
//Log::error($ex->getMessage());
|
//Log::error($ex->getMessage());
|
||||||
return $this->jsonResponse('fails', $message);
|
return $this->jsonResponse('fails', $message);
|
||||||
}
|
}
|
||||||
|
@@ -196,6 +196,7 @@ class FormController extends Controller
|
|||||||
//dd($form);
|
//dd($form);
|
||||||
if ($form) {
|
if ($form) {
|
||||||
$fields = $form->fields();
|
$fields = $form->fields();
|
||||||
|
|
||||||
//dd($fields);
|
//dd($fields);
|
||||||
return view('themes.default1.admin.helpdesk.manage.form.edit', compact('form', 'fields', 'select_forms'));
|
return view('themes.default1.admin.helpdesk.manage.form.edit', compact('form', 'fields', 'select_forms'));
|
||||||
}
|
}
|
||||||
@@ -215,6 +216,7 @@ class FormController extends Controller
|
|||||||
//dd($form);
|
//dd($form);
|
||||||
if ($form) {
|
if ($form) {
|
||||||
$fields = $form->fields();
|
$fields = $form->fields();
|
||||||
|
|
||||||
//dd($fields);
|
//dd($fields);
|
||||||
return view('themes.default1.admin.helpdesk.manage.form.add-child', compact('form', 'fields', 'select_forms'));
|
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
|
//Updating admin_notes field
|
||||||
$adminNotes = $request->input('admin_notes');
|
$adminNotes = $request->input('admin_notes');
|
||||||
$var->admin_notes = $adminNotes;
|
$var->admin_notes = $adminNotes;
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$var->save();
|
$var->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('groups')->with('success', Lang::get('lang.group_updated_successfully'));
|
return redirect('groups')->with('success', Lang::get('lang.group_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -198,9 +200,11 @@ class GroupController extends Controller
|
|||||||
}
|
}
|
||||||
$group_assign_department->where('group_id', $id)->delete();
|
$group_assign_department->where('group_id', $id)->delete();
|
||||||
$groups = $group->whereId($id)->first();
|
$groups = $group->whereId($id)->first();
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$groups->delete();
|
$groups->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('groups')->with('success', Lang::get('lang.group_deleted_successfully'));
|
return redirect('groups')->with('success', Lang::get('lang.group_deleted_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@@ -118,6 +118,7 @@ class HelptopicController extends Controller
|
|||||||
}
|
}
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$topic->fill($request->except('custom_form', 'auto_assign'))->save();
|
$topic->fill($request->except('custom_form', 'auto_assign'))->save();
|
||||||
|
|
||||||
// $topics->fill($request->except('custom_form','auto_assign'))->save();
|
// $topics->fill($request->except('custom_form','auto_assign'))->save();
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_created_successfully'));
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_created_successfully'));
|
||||||
@@ -192,6 +193,7 @@ class HelptopicController extends Controller
|
|||||||
->where('id', '=', 1)
|
->where('id', '=', 1)
|
||||||
->update(['help_topic' => $id]);
|
->update(['help_topic' => $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_updated_successfully'));
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -238,9 +240,11 @@ class HelptopicController extends Controller
|
|||||||
}
|
}
|
||||||
$message = $ticket.$email;
|
$message = $ticket.$email;
|
||||||
$topics = $topic->whereId($id)->first();
|
$topics = $topic->whereId($id)->first();
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$topics->delete();
|
$topics->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_deleted_successfully').$message);
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_deleted_successfully').$message);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@@ -74,6 +74,7 @@ class SettingsController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
$companys = $company->whereId('1')->first();
|
$companys = $company->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -104,9 +105,11 @@ class SettingsController extends Controller
|
|||||||
if ($request->input('use_logo') == null) {
|
if ($request->input('use_logo') == null) {
|
||||||
$companys->use_logo = '0';
|
$companys->use_logo = '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$companys->fill($request->except('logo'))->save();
|
$companys->fill($request->except('logo'))->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getcompany')->with('success', Lang::get('lang.company_updated_successfully'));
|
return redirect('getcompany')->with('success', Lang::get('lang.company_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -167,6 +170,7 @@ class SettingsController extends Controller
|
|||||||
$email_mandatory = $common_settings->select('status')
|
$email_mandatory = $common_settings->select('status')
|
||||||
->where('option_name', '=', 'email_mandatory')
|
->where('option_name', '=', 'email_mandatory')
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
/* Direct to System Settings Page */
|
/* 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'));
|
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) {
|
} catch (Exception $e) {
|
||||||
@@ -215,6 +219,7 @@ class SettingsController extends Controller
|
|||||||
$sett->status = $itil;
|
$sett->status = $itil;
|
||||||
$sett->save();
|
$sett->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getsystem')->with('success', Lang::get('lang.system_updated_successfully'));
|
return redirect('getsystem')->with('success', Lang::get('lang.system_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -242,6 +247,7 @@ class SettingsController extends Controller
|
|||||||
$slas = $sla->get();
|
$slas = $sla->get();
|
||||||
/* Fetch the values from Help_topic table */
|
/* Fetch the values from Help_topic table */
|
||||||
$topics = $topic->get();
|
$topics = $topic->get();
|
||||||
|
|
||||||
/* Direct to Ticket Settings Page */
|
/* Direct to Ticket Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -276,6 +282,7 @@ class SettingsController extends Controller
|
|||||||
$tickets->collision_avoid = $request->input('collision_avoid');
|
$tickets->collision_avoid = $request->input('collision_avoid');
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$tickets->save();
|
$tickets->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getticket')->with('success', Lang::get('lang.ticket_updated_successfully'));
|
return redirect('getticket')->with('success', Lang::get('lang.ticket_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -302,6 +309,7 @@ class SettingsController extends Controller
|
|||||||
$templates = $template->get();
|
$templates = $template->get();
|
||||||
/* Fetch the values from Emails table */
|
/* Fetch the values from Emails table */
|
||||||
$emails1 = $email1->get();
|
$emails1 = $email1->get();
|
||||||
|
|
||||||
/* Direct to Email Settings Page */
|
/* Direct to Email Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -334,6 +342,7 @@ class SettingsController extends Controller
|
|||||||
$emails->attachment = $request->input('attachment');
|
$emails->attachment = $request->input('attachment');
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$emails->save();
|
$emails->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getemail')->with('success', Lang::get('lang.email_updated_successfully'));
|
return redirect('getemail')->with('success', Lang::get('lang.email_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -435,6 +444,7 @@ class SettingsController extends Controller
|
|||||||
}
|
}
|
||||||
$work->save();
|
$work->save();
|
||||||
$this->saveConditions();
|
$this->saveConditions();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -455,6 +465,7 @@ class SettingsController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of responder from responder table */
|
/* fetch the values of responder from responder table */
|
||||||
$responders = $responder->whereId('1')->first();
|
$responders = $responder->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Responder Settings Page */
|
/* Direct to Responder Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -484,6 +495,7 @@ class SettingsController extends Controller
|
|||||||
/* fill the values to coompany table */
|
/* fill the values to coompany table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$responders->save();
|
$responders->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getresponder')->with('success', Lang::get('lang.auto_response_updated_successfully'));
|
return redirect('getresponder')->with('success', Lang::get('lang.auto_response_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -504,6 +516,7 @@ class SettingsController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of alert from alert table */
|
/* fetch the values of alert from alert table */
|
||||||
$alerts = $alert->whereId('1')->first();
|
$alerts = $alert->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Alert Settings Page */
|
/* Direct to Alert Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -572,6 +585,7 @@ class SettingsController extends Controller
|
|||||||
/* fill the values to coompany table */
|
/* fill the values to coompany table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$alerts->save();
|
$alerts->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getalert')->with('success', Lang::get('lang.alert_&_notices_updated_successfully'));
|
return redirect('getalert')->with('success', Lang::get('lang.alert_&_notices_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -615,6 +629,7 @@ class SettingsController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
$statuss = \DB::table('ticket_status')->get();
|
$statuss = \DB::table('ticket_status')->get();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -635,6 +650,7 @@ class SettingsController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
$status = \DB::table('ticket_status')->where('id', '=', $id)->first();
|
$status = \DB::table('ticket_status')->where('id', '=', $id)->first();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.status-edit', compact('status'));
|
return view('themes.default1.admin.helpdesk.settings.status-edit', compact('status'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -667,6 +683,7 @@ class SettingsController extends Controller
|
|||||||
}
|
}
|
||||||
$statuss->sort = $request->input('sort');
|
$statuss->sort = $request->input('sort');
|
||||||
$statuss->save();
|
$statuss->save();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_updated_successfully'));
|
return redirect()->back()->with('success', Lang::get('lang.status_has_been_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -698,6 +715,7 @@ class SettingsController extends Controller
|
|||||||
}
|
}
|
||||||
$statuss->sort = $request->input('sort');
|
$statuss->sort = $request->input('sort');
|
||||||
$statuss->save();
|
$statuss->save();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_created_successfully'));
|
return redirect()->back()->with('success', Lang::get('lang.status_has_been_created_successfully'));
|
||||||
} catch (Exception $ex) {
|
} catch (Exception $ex) {
|
||||||
@@ -718,6 +736,7 @@ class SettingsController extends Controller
|
|||||||
if ($id > 5) {
|
if ($id > 5) {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', Lang::get('lang.status_has_been_deleted'));
|
return redirect()->back()->with('success', Lang::get('lang.status_has_been_deleted'));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -109,6 +109,7 @@ class SettingsController2 extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
$statuss = \DB::table('ticket_status')->get();
|
$statuss = \DB::table('ticket_status')->get();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
return view('themes.default1.admin.helpdesk.settings.status', compact('statuss'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -141,6 +142,7 @@ class SettingsController2 extends Controller
|
|||||||
}
|
}
|
||||||
$statuss->sort = Input::get('sort');
|
$statuss->sort = Input::get('sort');
|
||||||
$statuss->save();
|
$statuss->save();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', 'Status has been updated!');
|
return redirect()->back()->with('success', 'Status has been updated!');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -164,6 +166,7 @@ class SettingsController2 extends Controller
|
|||||||
}
|
}
|
||||||
$statuss->sort = Input::get('sort');
|
$statuss->sort = Input::get('sort');
|
||||||
$statuss->save();
|
$statuss->save();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', 'Status has been created!');
|
return redirect()->back()->with('success', 'Status has been created!');
|
||||||
// } catch (Exception $ex) {
|
// } catch (Exception $ex) {
|
||||||
@@ -177,6 +180,7 @@ class SettingsController2 extends Controller
|
|||||||
if ($id > 5) {
|
if ($id > 5) {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
\App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->delete();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return redirect()->back()->with('success', 'Status has been deleted');
|
return redirect()->back()->with('success', 'Status has been deleted');
|
||||||
} else {
|
} else {
|
||||||
@@ -200,6 +204,7 @@ class SettingsController2 extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of company from company table */
|
/* fetch the values of company from company table */
|
||||||
$companys = $company->whereId('1')->first();
|
$companys = $company->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Company Settings Page */
|
/* Direct to Company Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
return view('themes.default1.admin.helpdesk.settings.company', compact('companys'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -230,9 +235,11 @@ class SettingsController2 extends Controller
|
|||||||
if ($request->input('use_logo') == null) {
|
if ($request->input('use_logo') == null) {
|
||||||
$companys->use_logo = '0';
|
$companys->use_logo = '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$companys->fill($request->except('logo'))->save();
|
$companys->fill($request->except('logo'))->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getcompany')->with('success', 'Company Updated Successfully');
|
return redirect('getcompany')->with('success', 'Company Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -283,6 +290,7 @@ class SettingsController2 extends Controller
|
|||||||
$departments = $department->get();
|
$departments = $department->get();
|
||||||
/* Fetch the values from Timezones table */
|
/* Fetch the values from Timezones table */
|
||||||
$timezones = $timezone->get();
|
$timezones = $timezone->get();
|
||||||
|
|
||||||
/* Direct to System Settings Page */
|
/* Direct to System Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time'));
|
return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -308,6 +316,7 @@ class SettingsController2 extends Controller
|
|||||||
/* fill the values to coompany table */
|
/* fill the values to coompany table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$systems->fill($request->input())->save();
|
$systems->fill($request->input())->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getsystem')->with('success', 'System Updated Successfully');
|
return redirect('getsystem')->with('success', 'System Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -335,6 +344,7 @@ class SettingsController2 extends Controller
|
|||||||
$slas = $sla->get();
|
$slas = $sla->get();
|
||||||
/* Fetch the values from Help_topic table */
|
/* Fetch the values from Help_topic table */
|
||||||
$topics = $topic->get();
|
$topics = $topic->get();
|
||||||
|
|
||||||
/* Direct to Ticket Settings Page */
|
/* Direct to Ticket Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -369,6 +379,7 @@ class SettingsController2 extends Controller
|
|||||||
$tickets->collision_avoid = $request->input('collision_avoid');
|
$tickets->collision_avoid = $request->input('collision_avoid');
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$tickets->save();
|
$tickets->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getticket')->with('success', 'Ticket Updated Successfully');
|
return redirect('getticket')->with('success', 'Ticket Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -395,6 +406,7 @@ class SettingsController2 extends Controller
|
|||||||
$templates = $template->get();
|
$templates = $template->get();
|
||||||
/* Fetch the values from Emails table */
|
/* Fetch the values from Emails table */
|
||||||
$emails1 = $email1->get();
|
$emails1 = $email1->get();
|
||||||
|
|
||||||
/* Direct to Email Settings Page */
|
/* Direct to Email Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -427,6 +439,7 @@ class SettingsController2 extends Controller
|
|||||||
$emails->attachment = $request->input('attachment');
|
$emails->attachment = $request->input('attachment');
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$emails->save();
|
$emails->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getemail')->with('success', 'Email Updated Successfully');
|
return redirect('getemail')->with('success', 'Email Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -485,6 +498,7 @@ class SettingsController2 extends Controller
|
|||||||
$emails->notification_cron = 0;
|
$emails->notification_cron = 0;
|
||||||
}
|
}
|
||||||
$emails->save();
|
$emails->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
return redirect('job-scheduler')->with('success', Lang::get('lang.job-scheduler-success'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -556,6 +570,7 @@ class SettingsController2 extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of responder from responder table */
|
/* fetch the values of responder from responder table */
|
||||||
$responders = $responder->whereId('1')->first();
|
$responders = $responder->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Responder Settings Page */
|
/* Direct to Responder Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
return view('themes.default1.admin.helpdesk.settings.responder', compact('responders'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -585,6 +600,7 @@ class SettingsController2 extends Controller
|
|||||||
/* fill the values to coompany table */
|
/* fill the values to coompany table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$responders->save();
|
$responders->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getresponder')->with('success', 'Responder Updated Successfully');
|
return redirect('getresponder')->with('success', 'Responder Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -605,6 +621,7 @@ class SettingsController2 extends Controller
|
|||||||
try {
|
try {
|
||||||
/* fetch the values of alert from alert table */
|
/* fetch the values of alert from alert table */
|
||||||
$alerts = $alert->whereId('1')->first();
|
$alerts = $alert->whereId('1')->first();
|
||||||
|
|
||||||
/* Direct to Alert Settings Page */
|
/* Direct to Alert Settings Page */
|
||||||
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -673,6 +690,7 @@ class SettingsController2 extends Controller
|
|||||||
/* fill the values to coompany table */
|
/* fill the values to coompany table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$alerts->save();
|
$alerts->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('getalert')->with('success', 'Alert Updated Successfully');
|
return redirect('getalert')->with('success', 'Alert Updated Successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@@ -45,6 +45,7 @@ class SlaController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* Declare a Variable $slas to store all Values From Sla_plan Table */
|
/* Declare a Variable $slas to store all Values From Sla_plan Table */
|
||||||
$slas = $sla->get();
|
$slas = $sla->get();
|
||||||
|
|
||||||
/* Listing the values From Sla_plan Table */
|
/* Listing the values From Sla_plan Table */
|
||||||
return view('themes.default1.admin.helpdesk.manage.sla.index', compact('slas'));
|
return view('themes.default1.admin.helpdesk.manage.sla.index', compact('slas'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -81,6 +82,7 @@ class SlaController extends Controller
|
|||||||
/* Fill the request values to Sla_plan Table */
|
/* Fill the request values to Sla_plan Table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$sla->fill($request->input())->save();
|
$sla->fill($request->input())->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('sla')->with('success', Lang::get('lang.sla_plan_created_successfully'));
|
return redirect('sla')->with('success', Lang::get('lang.sla_plan_created_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -196,9 +198,11 @@ class SlaController extends Controller
|
|||||||
$message = $ticket.$dept.$topic;
|
$message = $ticket.$dept.$topic;
|
||||||
/* Delete a perticular field from the database by delete() using Id */
|
/* Delete a perticular field from the database by delete() using Id */
|
||||||
$slas = Sla_plan::whereId($id)->first();
|
$slas = Sla_plan::whereId($id)->first();
|
||||||
|
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$slas->delete();
|
$slas->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('sla')->with('success', Lang::get('lang.sla_plan_deleted_successfully').$message);
|
return redirect('sla')->with('success', Lang::get('lang.sla_plan_deleted_successfully').$message);
|
||||||
} catch (Exception $e) {
|
} 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')
|
$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')
|
->join('users', 'users.id', '=', 'team_assign_agent.agent_id')
|
||||||
->where('team_assign_agent.team_id', '=', $id);
|
->where('team_assign_agent.team_id', '=', $id);
|
||||||
|
|
||||||
// ->get();
|
// ->get();
|
||||||
// dd($users);
|
// dd($users);
|
||||||
return \Datatable::query($users)
|
return \Datatable::query($users)
|
||||||
@@ -219,6 +220,7 @@ class TeamController extends Controller
|
|||||||
}
|
}
|
||||||
// dd($a_id);
|
// dd($a_id);
|
||||||
$user = $user->whereIn('id', $a_id)->where('active', '=', 1)->orderBy('first_name')->get();
|
$user = $user->whereIn('id', $a_id)->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
|
|
||||||
// dd($user);
|
// dd($user);
|
||||||
return view('themes.default1.admin.helpdesk.agent.teams.edit', compact('agent_id', 'user', 'teams'));
|
return view('themes.default1.admin.helpdesk.agent.teams.edit', compact('agent_id', 'user', 'teams'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -250,10 +252,12 @@ class TeamController extends Controller
|
|||||||
$alert = $request->input('assign_alert');
|
$alert = $request->input('assign_alert');
|
||||||
$teams->assign_alert = $alert;
|
$teams->assign_alert = $alert;
|
||||||
$teams->save(); //saving check box
|
$teams->save(); //saving check box
|
||||||
|
|
||||||
//updating whole field
|
//updating whole field
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
$teams->fill($request->except('team_lead'))->save();
|
$teams->fill($request->except('team_lead'))->save();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('teams')->with('success', Lang::get('lang.teams_updated_successfully'));
|
return redirect('teams')->with('success', Lang::get('lang.teams_updated_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -279,6 +283,7 @@ class TeamController extends Controller
|
|||||||
$tickets = DB::table('tickets')->where('team_id', '=', $id)->update(['team_id' => null]);
|
$tickets = DB::table('tickets')->where('team_id', '=', $id)->update(['team_id' => null]);
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$teams->delete();
|
$teams->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('teams')->with('success', Lang::get('lang.teams_deleted_successfully'));
|
return redirect('teams')->with('success', Lang::get('lang.teams_deleted_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@@ -32,6 +32,7 @@ class ThreadController extends Controller
|
|||||||
$threads = $thread->get();
|
$threads = $thread->get();
|
||||||
/* get the values of priority from Priority Table */
|
/* get the values of priority from Priority Table */
|
||||||
$priorities = $priority->get();
|
$priorities = $priority->get();
|
||||||
|
|
||||||
/* Direct to view page */
|
/* Direct to view page */
|
||||||
return view('themes.default1.admin.helpdesk.tickets.ticket', compact('threads', 'priorities'));
|
return view('themes.default1.admin.helpdesk.tickets.ticket', compact('threads', 'priorities'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@@ -18,6 +18,7 @@ class UrlSettingController extends Controller
|
|||||||
$url = $request->url();
|
$url = $request->url();
|
||||||
$www = $this->checkWWW($url);
|
$www = $this->checkWWW($url);
|
||||||
$https = $this->checkHTTP($url);
|
$https = $this->checkHTTP($url);
|
||||||
|
|
||||||
//dd($www, $https);
|
//dd($www, $https);
|
||||||
try {
|
try {
|
||||||
return view('themes.default1.admin.helpdesk.settings.url.settings', compact('www', 'https'));
|
return view('themes.default1.admin.helpdesk.settings.url.settings', compact('www', 'https'));
|
||||||
|
@@ -155,6 +155,7 @@ class CannedController extends Controller
|
|||||||
/* delete the selected field */
|
/* delete the selected field */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$canned->delete();
|
$canned->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect()->route('canned.list')->with('success', Lang::get('lang.canned_response_deleted'));
|
return redirect()->route('canned.list')->with('success', Lang::get('lang.canned_response_deleted'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -180,6 +181,7 @@ class CannedController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$msg = '';
|
$msg = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// returning the canned response in JSON format
|
// returning the canned response in JSON format
|
||||||
return \Response::json($msg);
|
return \Response::json($msg);
|
||||||
}
|
}
|
||||||
|
@@ -576,6 +576,7 @@ class FilterController extends Controller
|
|||||||
$query->whereIn('tickets.team_id', $teams)
|
$query->whereIn('tickets.team_id', $teams)
|
||||||
->orWhereIn('tickets.assigned_to', $users);
|
->orWhereIn('tickets.assigned_to', $users);
|
||||||
});
|
});
|
||||||
|
|
||||||
// dd($table->toSql());
|
// dd($table->toSql());
|
||||||
return $table;
|
return $table;
|
||||||
}
|
}
|
||||||
@@ -899,6 +900,7 @@ class FilterController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$table = $table->where('tickets.id', '=', null);
|
$table = $table->where('tickets.id', '=', null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// dd($table->toSql());
|
// dd($table->toSql());
|
||||||
return $table;
|
return $table;
|
||||||
}
|
}
|
||||||
|
@@ -51,6 +51,7 @@ class FilterControllerOld extends Controller
|
|||||||
if ((is_array($tags) && count($tags) > 0) || (is_array($labels) && count($labels) > 0)) {
|
if ((is_array($tags) && count($tags) > 0) || (is_array($labels) && count($labels) > 0)) {
|
||||||
$render = true;
|
$render = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// return \Datatables::of($table)->make();
|
// return \Datatables::of($table)->make();
|
||||||
return \Ttable::getTable($table);
|
return \Ttable::getTable($table);
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ class ImapMail extends Mailbox
|
|||||||
{
|
{
|
||||||
//dd($this->getImapStream());
|
//dd($this->getImapStream());
|
||||||
$mailsIds = imap_search($this->getImapStream(), $criteria, SE_UID);
|
$mailsIds = imap_search($this->getImapStream(), $criteria, SE_UID);
|
||||||
|
|
||||||
//dd($mailsIds);
|
//dd($mailsIds);
|
||||||
return $mailsIds ? $mailsIds : [];
|
return $mailsIds ? $mailsIds : [];
|
||||||
}
|
}
|
||||||
|
@@ -178,6 +178,7 @@ class OrganizationController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* select the field by id */
|
/* select the field by id */
|
||||||
$orgs = $org->whereId($id)->first();
|
$orgs = $org->whereId($id)->first();
|
||||||
|
|
||||||
/* To view page */
|
/* To view page */
|
||||||
return view('themes.default1.agent.helpdesk.organization.show', compact('orgs'));
|
return view('themes.default1.agent.helpdesk.organization.show', compact('orgs'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -198,6 +199,7 @@ class OrganizationController extends Controller
|
|||||||
try {
|
try {
|
||||||
/* select the field by id */
|
/* select the field by id */
|
||||||
$orgs = $org->whereId($id)->first();
|
$orgs = $org->whereId($id)->first();
|
||||||
|
|
||||||
/* To view page */
|
/* To view page */
|
||||||
return view('themes.default1.agent.helpdesk.organization.edit', compact('orgs'));
|
return view('themes.default1.agent.helpdesk.organization.edit', compact('orgs'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -254,6 +256,7 @@ class OrganizationController extends Controller
|
|||||||
/* Delete the field selected from the table */
|
/* Delete the field selected from the table */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$orgs->delete();
|
$orgs->delete();
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('organizations')->with('success', Lang::get('lang.organization_deleted_successfully'));
|
return redirect('organizations')->with('success', Lang::get('lang.organization_deleted_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
758
app/Http/Controllers/Agent/helpdesk/TicketController.php
Executable file → Normal file
758
app/Http/Controllers/Agent/helpdesk/TicketController.php
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@@ -201,6 +201,7 @@ class TicketWorkflowController extends Controller
|
|||||||
} elseif ($condition == 'ends') {
|
} elseif ($condition == 'ends') {
|
||||||
$return = $this->checkEnds($statement, $to_check);
|
$return = $this->checkEnds($statement, $to_check);
|
||||||
}
|
}
|
||||||
|
|
||||||
// elseif($condition == 'match') {
|
// elseif($condition == 'match') {
|
||||||
//
|
//
|
||||||
// } elseif($condition == 'not_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\Ticket\Tickets;
|
||||||
use App\Model\helpdesk\Utility\CountryCode;
|
use App\Model\helpdesk\Utility\CountryCode;
|
||||||
use App\Model\helpdesk\Utility\Otp;
|
use App\Model\helpdesk\Utility\Otp;
|
||||||
|
use App\Model\helpdesk\Agent\Department;
|
||||||
use App\User;
|
use App\User;
|
||||||
// classes
|
// classes
|
||||||
use Auth;
|
use Auth;
|
||||||
@@ -149,6 +150,7 @@ class UserController extends Controller
|
|||||||
$query->orWhere('country_code', 'LIKE', '%'.$search.'%');
|
$query->orWhere('country_code', 'LIKE', '%'.$search.'%');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// displaying list of users with chumper datatables
|
// displaying list of users with chumper datatables
|
||||||
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
|
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
|
||||||
return \Yajra\DataTables\Facades\DataTables::of($users)
|
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'));
|
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// $user->save();
|
// $user->save();
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
|
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
|
||||||
@@ -676,6 +679,7 @@ class UserController extends Controller
|
|||||||
$user = new User();
|
$user = new User();
|
||||||
/* select the field where id = $id(request Id) */
|
/* select the field where id = $id(request Id) */
|
||||||
$users = $user->whereId($id)->first();
|
$users = $user->whereId($id)->first();
|
||||||
|
|
||||||
/* Update the value by selected field */
|
/* Update the value by selected field */
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
try {
|
try {
|
||||||
@@ -697,6 +701,7 @@ class UserController extends Controller
|
|||||||
|
|
||||||
$this->storeUserOrgRelation($id, $orgid);
|
$this->storeUserOrgRelation($id, $orgid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('user')->with('success', Lang::get('lang.User-profile-Updated-Successfully'));
|
return redirect('user')->with('success', Lang::get('lang.User-profile-Updated-Successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -733,11 +738,13 @@ class UserController extends Controller
|
|||||||
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
|
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
|
||||||
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
||||||
$status = $settings->status;
|
$status = $settings->status;
|
||||||
|
$departments = Department::all();
|
||||||
try {
|
try {
|
||||||
return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user'))
|
return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user', 'departments'))
|
||||||
->with(['phonecode' => $phonecode->phonecode,
|
->with([
|
||||||
'verify' => $status, ]);
|
'phonecode' => $phonecode->phonecode,
|
||||||
|
'verify' => $status,
|
||||||
|
]);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return redirect()->back()->with('fails', $e->getMessage());
|
return redirect()->back()->with('fails', $e->getMessage());
|
||||||
}
|
}
|
||||||
@@ -932,6 +939,7 @@ class UserController extends Controller
|
|||||||
$user_org->org_id = $org->id;
|
$user_org->org_id = $org->id;
|
||||||
$user_org->user_id = $id;
|
$user_org->user_id = $id;
|
||||||
$user_org->save();
|
$user_org->save();
|
||||||
|
|
||||||
// for success return 0
|
// for success return 0
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -956,6 +964,7 @@ class UserController extends Controller
|
|||||||
for ($i = 0; $i < $length; $i++) {
|
for ($i = 0; $i < $length; $i++) {
|
||||||
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
$randomString .= $characters[rand(0, $charactersLength - 1)];
|
||||||
}
|
}
|
||||||
|
|
||||||
// return random string
|
// return random string
|
||||||
return $randomString;
|
return $randomString;
|
||||||
}
|
}
|
||||||
@@ -1061,6 +1070,7 @@ class UserController extends Controller
|
|||||||
if (Hash::check(Input::get('otp'), $otp->otp)) {
|
if (Hash::check(Input::get('otp'), $otp->otp)) {
|
||||||
Otp::where('user_id', '=', Input::get('u_id'))
|
Otp::where('user_id', '=', Input::get('u_id'))
|
||||||
->update(['otp' => '']);
|
->update(['otp' => '']);
|
||||||
|
|
||||||
// User::where('id', '=', $user->id)
|
// User::where('id', '=', $user->id)
|
||||||
// ->update(['active' => 1]);
|
// ->update(['active' => 1]);
|
||||||
// $this->openTicketAfterVerification($user->id);
|
// $this->openTicketAfterVerification($user->id);
|
||||||
|
@@ -68,6 +68,7 @@ class ArticleController extends Controller
|
|||||||
->select('id', 'name', 'description', 'publish_time', 'slug')
|
->select('id', 'name', 'description', 'publish_time', 'slug')
|
||||||
->orderBy('publish_time', 'desc')
|
->orderBy('publish_time', 'desc')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
// returns chumper datatable
|
// returns chumper datatable
|
||||||
return Datatable::Collection($articles)
|
return Datatable::Collection($articles)
|
||||||
|
|
||||||
@@ -136,6 +137,7 @@ class ArticleController extends Controller
|
|||||||
{
|
{
|
||||||
/* get the attributes of the category */
|
/* get the attributes of the category */
|
||||||
$category = $category->pluck('id', 'name');
|
$category = $category->pluck('id', 'name');
|
||||||
|
|
||||||
/* get the create page */
|
/* get the create page */
|
||||||
try {
|
try {
|
||||||
return view('themes.default1.agent.kb.article.create', compact('category'));
|
return view('themes.default1.agent.kb.article.create', compact('category'));
|
||||||
@@ -169,6 +171,7 @@ class ArticleController extends Controller
|
|||||||
foreach ($requests as $req) {
|
foreach ($requests as $req) {
|
||||||
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* insert the values to the article table */
|
/* insert the values to the article table */
|
||||||
try {
|
try {
|
||||||
$article->fill($request->except('slug'))->save();
|
$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 and display it at edit page */
|
||||||
/* Get the selected article with id */
|
/* Get the selected article with id */
|
||||||
$article = $article->whereId($id)->first();
|
$article = $article->whereId($id)->first();
|
||||||
|
|
||||||
/* send to the edit page */
|
/* send to the edit page */
|
||||||
try {
|
try {
|
||||||
return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category'));
|
return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category'));
|
||||||
@@ -244,6 +248,7 @@ class ArticleController extends Controller
|
|||||||
foreach ($requests as $req) {
|
foreach ($requests as $req) {
|
||||||
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
DB::insert('insert into kb_article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* update the value to the table */
|
/* update the value to the table */
|
||||||
try {
|
try {
|
||||||
$article->fill($request->all())->save();
|
$article->fill($request->all())->save();
|
||||||
|
@@ -123,6 +123,7 @@ class CategoryController extends Controller
|
|||||||
{
|
{
|
||||||
/* Get the all attributes in the category model */
|
/* Get the all attributes in the category model */
|
||||||
$category = $category->pluck('name', 'id')->toArray();
|
$category = $category->pluck('name', 'id')->toArray();
|
||||||
|
|
||||||
/* get the view page to create new category with all attributes
|
/* get the view page to create new category with all attributes
|
||||||
of category model */
|
of category model */
|
||||||
try {
|
try {
|
||||||
@@ -146,6 +147,7 @@ class CategoryController extends Controller
|
|||||||
$sl = $request->input('name');
|
$sl = $request->input('name');
|
||||||
$slug = Str::slug($sl, '-');
|
$slug = Str::slug($sl, '-');
|
||||||
$category->slug = $slug;
|
$category->slug = $slug;
|
||||||
|
|
||||||
// send success message to index page
|
// send success message to index page
|
||||||
try {
|
try {
|
||||||
$category->fill($request->input())->save();
|
$category->fill($request->input())->save();
|
||||||
@@ -169,6 +171,7 @@ class CategoryController extends Controller
|
|||||||
/* get the atributes of the category model whose id == $id */
|
/* get the atributes of the category model whose id == $id */
|
||||||
$category = Category::whereId($id)->first();
|
$category = Category::whereId($id)->first();
|
||||||
$categories = Category::pluck('name', 'id')->toArray();
|
$categories = Category::pluck('name', 'id')->toArray();
|
||||||
|
|
||||||
/* get the Edit page the selected category via id */
|
/* get the Edit page the selected category via id */
|
||||||
return view('themes.default1.agent.kb.category.edit', compact('category', 'categories'));
|
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();
|
$category = Category::where('id', $id)->first();
|
||||||
$sl = $request->input('name');
|
$sl = $request->input('name');
|
||||||
$slug = Str::slug($sl, '-');
|
$slug = Str::slug($sl, '-');
|
||||||
|
|
||||||
/* update the values at the table via model according with the request */
|
/* update the values at the table via model according with the request */
|
||||||
//redirct to index page with success message
|
//redirct to index page with success message
|
||||||
try {
|
try {
|
||||||
@@ -218,6 +222,7 @@ class CategoryController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
/* delete the category selected, id == $id */
|
/* delete the category selected, id == $id */
|
||||||
$category = $category->whereId($id)->first();
|
$category = $category->whereId($id)->first();
|
||||||
|
|
||||||
// redirect to index with success message
|
// redirect to index with success message
|
||||||
try {
|
try {
|
||||||
$category->delete();
|
$category->delete();
|
||||||
|
@@ -56,6 +56,7 @@ class SettingsController extends Controller
|
|||||||
/* get the setting where the id == 1 */
|
/* get the setting where the id == 1 */
|
||||||
$settings = $settings->whereId('1')->first();
|
$settings = $settings->whereId('1')->first();
|
||||||
$time = $time->get();
|
$time = $time->get();
|
||||||
|
|
||||||
//$date = $date->get();
|
//$date = $date->get();
|
||||||
return view('themes.default1.agent.kb.settings.settings', compact('date', 'settings', 'time'));
|
return view('themes.default1.agent.kb.settings.settings', compact('date', 'settings', 'time'));
|
||||||
}
|
}
|
||||||
|
@@ -77,6 +77,7 @@ class AuthController extends Controller
|
|||||||
}
|
}
|
||||||
//dd(\Config::get('services'));
|
//dd(\Config::get('services'));
|
||||||
$s = Socialite::driver($provider)->redirect();
|
$s = Socialite::driver($provider)->redirect();
|
||||||
|
|
||||||
//dd('dscd');
|
//dd('dscd');
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
@@ -114,6 +115,7 @@ class AuthController extends Controller
|
|||||||
}
|
}
|
||||||
Auth::login($user);
|
Auth::login($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
//after login redirecting to home page
|
//after login redirecting to home page
|
||||||
return redirect('/');
|
return redirect('/');
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
|
@@ -58,8 +58,8 @@ class ForgotPasswordController extends Controller
|
|||||||
$password_reset_table = DB::table('password_resets')->where('email', '=', $user->email)->first();
|
$password_reset_table = DB::table('password_resets')->where('email', '=', $user->email)->first();
|
||||||
if (isset($password_reset_table)) {
|
if (isset($password_reset_table)) {
|
||||||
$password_reset_table = DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
$password_reset_table = DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
||||||
// $password_reset_table->token = $code;
|
// $password_reset_table->token = $code;
|
||||||
// $password_reset_table->update(['token' => $code]);
|
// $password_reset_table->update(['token' => $code]);
|
||||||
} else {
|
} else {
|
||||||
$create_password_reset = DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
$create_password_reset = DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
||||||
}
|
}
|
||||||
|
@@ -63,8 +63,8 @@ class PasswordController extends Controller
|
|||||||
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->first();
|
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->first();
|
||||||
if (isset($password_reset_table)) {
|
if (isset($password_reset_table)) {
|
||||||
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
$password_reset_table = \DB::table('password_resets')->where('email', '=', $user->email)->update(['token' => $code, 'created_at' => $date]);
|
||||||
// $password_reset_table->token = $code;
|
// $password_reset_table->token = $code;
|
||||||
// $password_reset_table->update(['token' => $code]);
|
// $password_reset_table->update(['token' => $code]);
|
||||||
} else {
|
} else {
|
||||||
$create_password_reset = \DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
$create_password_reset = \DB::table('password_resets')->insert(['email' => $user->email, 'token' => $code, 'created_at' => $date]);
|
||||||
}
|
}
|
||||||
|
47
app/Http/Controllers/Client/helpdesk/FormController.php
Executable file → Normal file
47
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\Ticket\Tickets;
|
||||||
use App\Model\helpdesk\Utility\CountryCode;
|
use App\Model\helpdesk\Utility\CountryCode;
|
||||||
use App\User;
|
use App\User;
|
||||||
|
use App\Model\helpdesk\Agent\Location;
|
||||||
use Exception;
|
use Exception;
|
||||||
// classes
|
// classes
|
||||||
use Form;
|
use Form;
|
||||||
@@ -64,6 +65,7 @@ class FormController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getForm(Help_topic $topic, CountryCode $code)
|
public function getForm(Help_topic $topic, CountryCode $code)
|
||||||
{
|
{
|
||||||
|
$locations = Location::all();
|
||||||
if (\Config::get('database.install') == '%0%') {
|
if (\Config::get('database.install') == '%0%') {
|
||||||
return \Redirect::route('licence');
|
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();
|
[$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 {
|
} else {
|
||||||
return \Redirect::route('home');
|
return \Redirect::route('home');
|
||||||
}
|
}
|
||||||
@@ -113,29 +115,29 @@ class FormController extends Controller
|
|||||||
$form_fields = explode(',', $form_data->value);
|
$form_fields = explode(',', $form_data->value);
|
||||||
$var = '';
|
$var = '';
|
||||||
foreach ($form_fields as $form_field) {
|
foreach ($form_fields as $form_field) {
|
||||||
$var .= '<option value="'.$form_field.'">'.$form_field.'</option>';
|
$var .= '<option value="' . $form_field . '">' . $form_field . '</option>';
|
||||||
}
|
}
|
||||||
echo '<br/><label>'.ucfirst($form_data->label).'</label><select class="form-control" name="'.$form_data->name.'">'.$var.'</select>';
|
echo '<br/><label>' . ucfirst($form_data->label) . '</label><select class="form-control" name="' . $form_data->name . '">' . $var . '</select>';
|
||||||
} elseif ($form_data->type == 'radio') {
|
} elseif ($form_data->type == 'radio') {
|
||||||
$type2 = $form_data->value;
|
$type2 = $form_data->value;
|
||||||
$vals = explode(',', $type2);
|
$vals = explode(',', $type2);
|
||||||
echo '<br/><label>'.ucfirst($form_data->label).'</label><br/>';
|
echo '<br/><label>' . ucfirst($form_data->label) . '</label><br/>';
|
||||||
foreach ($vals as $val) {
|
foreach ($vals as $val) {
|
||||||
echo '<input type="'.$form_data->type.'" name="'.$form_data->name.'"> '.$form_data->value.' ';
|
echo '<input type="' . $form_data->type . '" name="' . $form_data->name . '"> ' . $form_data->value . ' ';
|
||||||
}
|
}
|
||||||
echo '<br/>';
|
echo '<br/>';
|
||||||
} elseif ($form_data->type == 'textarea') {
|
} elseif ($form_data->type == 'textarea') {
|
||||||
$type3 = $form_data->value;
|
$type3 = $form_data->value;
|
||||||
echo '<br/><label>'.$form_data->label.'</label></br><textarea id="unique-textarea" name="'.$form_data->name.'" class="form-control" style="height:15%;"></textarea>';
|
echo '<br/><label>' . $form_data->label . '</label></br><textarea id="unique-textarea" name="' . $form_data->name . '" class="form-control" style="height:15%;"></textarea>';
|
||||||
} elseif ($form_data->type == 'checkbox') {
|
} elseif ($form_data->type == 'checkbox') {
|
||||||
$type4 = $form_data->value;
|
$type4 = $form_data->value;
|
||||||
$checks = explode(',', $type4);
|
$checks = explode(',', $type4);
|
||||||
echo '<br/><label>'.ucfirst($form_data->label).'</label><br/>';
|
echo '<br/><label>' . ucfirst($form_data->label) . '</label><br/>';
|
||||||
foreach ($checks as $check) {
|
foreach ($checks as $check) {
|
||||||
echo '<input type="'.$form_data->type.'" name="'.$form_data->name.'">  '.$check;
|
echo '<input type="' . $form_data->type . '" name="' . $form_data->name . '">  ' . $check;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo '<br/><label>'.ucfirst($form_data->label).'</label><input type="'.$form_data->type.'" class="form-control" name="'.$form_data->name.'" />';
|
echo '<br/><label>' . ucfirst($form_data->label) . '</label><input type="' . $form_data->type . '" class="form-control" name="' . $form_data->name . '" />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '<br/><br/>';
|
echo '<br/><br/>';
|
||||||
@@ -238,26 +240,27 @@ class FormController extends Controller
|
|||||||
if ($attachments != null) {
|
if ($attachments != null) {
|
||||||
$storage = new \App\FaveoStorage\Controllers\StorageController();
|
$storage = new \App\FaveoStorage\Controllers\StorageController();
|
||||||
$storage->saveAttachments($thread->id, $attachments);
|
$storage->saveAttachments($thread->id, $attachments);
|
||||||
// foreach ($attachments as $attachment) {
|
// foreach ($attachments as $attachment) {
|
||||||
// if ($attachment != null) {
|
// if ($attachment != null) {
|
||||||
// $name = $attachment->getClientOriginalName();
|
// $name = $attachment->getClientOriginalName();
|
||||||
// $type = $attachment->getClientOriginalExtension();
|
// $type = $attachment->getClientOriginalExtension();
|
||||||
// $size = $attachment->getSize();
|
// $size = $attachment->getSize();
|
||||||
// $data = file_get_contents($attachment->getRealPath());
|
// $data = file_get_contents($attachment->getRealPath());
|
||||||
// $attachPath = $attachment->getRealPath();
|
// $attachPath = $attachment->getRealPath();
|
||||||
// $ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']);
|
// $ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// dd($result);
|
// dd($result);
|
||||||
return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is').' '.$result[0].'. ');
|
return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is') . ' ' . $result[0] . '. ');
|
||||||
} else {
|
} else {
|
||||||
return Redirect::back()->withInput($request->except('password'))->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken'));
|
return Redirect::back()->withInput($request->except('password'))->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken'));
|
||||||
}
|
}
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
return redirect()->back()->with('fails', $ex->getMessage());
|
return redirect()->back()->with('fails', $ex->getMessage());
|
||||||
}
|
}
|
||||||
// dd($result);
|
// dd($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -275,7 +278,7 @@ class FormController extends Controller
|
|||||||
$tickets = Tickets::where('id', '=', $id)->first();
|
$tickets = Tickets::where('id', '=', $id)->first();
|
||||||
$thread = Ticket_Thread::where('ticket_id', '=', $tickets->id)->first();
|
$thread = Ticket_Thread::where('ticket_id', '=', $tickets->id)->first();
|
||||||
|
|
||||||
$subject = $thread->title.'[#'.$tickets->ticket_number.']';
|
$subject = $thread->title . '[#' . $tickets->ticket_number . ']';
|
||||||
$body = $comment;
|
$body = $comment;
|
||||||
|
|
||||||
$user_cred = User::where('id', '=', $tickets->user_id)->first();
|
$user_cred = User::where('id', '=', $tickets->user_id)->first();
|
||||||
|
@@ -209,6 +209,7 @@ class GuestController extends Controller
|
|||||||
$tickets = $tickets->where('user_id', '=', $user_id)->first();
|
$tickets = $tickets->where('user_id', '=', $user_id)->first();
|
||||||
//dd($ticket);
|
//dd($ticket);
|
||||||
$thread = $thread->where('ticket_id', $tickets->id)->first();
|
$thread = $thread->where('ticket_id', $tickets->id)->first();
|
||||||
|
|
||||||
//dd($thread);
|
//dd($thread);
|
||||||
// $tickets = $tickets->whereId($id)->first();
|
// $tickets = $tickets->whereId($id)->first();
|
||||||
return view('themes.default1.client.guest-user.view_ticket', compact('thread', 'tickets'));
|
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)) {
|
if (Hash::check(Input::get('otp'), $otp->otp)) {
|
||||||
Otp::where('user_id', '=', Input::get('u_id'))
|
Otp::where('user_id', '=', Input::get('u_id'))
|
||||||
->update(['otp' => '']);
|
->update(['otp' => '']);
|
||||||
|
|
||||||
// User::where('id', '=', $user->id)
|
// User::where('id', '=', $user->id)
|
||||||
// ->update(['active' => 1]);
|
// ->update(['active' => 1]);
|
||||||
// $this->openTicketAfterVerification($user->id);
|
// $this->openTicketAfterVerification($user->id);
|
||||||
|
36
app/Http/Controllers/Client/helpdesk/UnAuthController.php
Executable file → Normal file
36
app/Http/Controllers/Client/helpdesk/UnAuthController.php
Executable file → Normal file
@@ -338,33 +338,33 @@ class UnAuthController extends Controller
|
|||||||
// return Cache::get('language');
|
// return Cache::get('language');
|
||||||
// } else return 'false';
|
// } else return 'false';
|
||||||
// Cache::put('language',$);
|
// Cache::put('language',$);
|
||||||
$path = base_path('lang'); // Path to check available language packages
|
$path = base_path('lang'); // Path to check available language packages
|
||||||
if (array_key_exists($lang, \Config::get('languages')) && in_array($lang, scandir($path))) {
|
if (array_key_exists($lang, \Config::get('languages')) && in_array($lang, scandir($path))) {
|
||||||
// dd(array_key_exists($lang, Config::get('languages')));
|
// dd(array_key_exists($lang, Config::get('languages')));
|
||||||
// app()->setLocale($lang);
|
// app()->setLocale($lang);
|
||||||
|
|
||||||
\Cache::forever('language', $lang);
|
\Cache::forever('language', $lang);
|
||||||
// dd(Cache::get('language'));
|
// dd(Cache::get('language'));
|
||||||
// dd()
|
// dd()
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* $path = base_path('lang'); // Path to check available language packages
|
/* $path = base_path('lang'); // Path to check available language packages
|
||||||
if (array_key_exists($lang, \Config::get('languages')) && in_array($lang, scandir($path))) {
|
if (array_key_exists($lang, \Config::get('languages')) && in_array($lang, scandir($path))) {
|
||||||
if (Auth::check()) {
|
if (Auth::check()) {
|
||||||
$id = Auth::user()->id;
|
$id = Auth::user()->id;
|
||||||
$user = User::find($id);
|
$user = User::find($id);
|
||||||
$user->user_language = $lang;
|
$user->user_language = $lang;
|
||||||
$user->save();
|
$user->save();
|
||||||
} else {
|
} else {
|
||||||
Session::put('language', $lang);
|
Session::put('language', $lang);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back();*/
|
return redirect()->back();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Follow up tickets
|
// Follow up tickets
|
||||||
|
@@ -141,6 +141,7 @@ class UserController extends Controller
|
|||||||
/* from whole attribute pick the article_id */
|
/* from whole attribute pick the article_id */
|
||||||
$article_id = $all->pluck('article_id');
|
$article_id = $all->pluck('article_id');
|
||||||
$categorys = $category->get();
|
$categorys = $category->get();
|
||||||
|
|
||||||
/* direct to view with $article_id */
|
/* direct to view with $article_id */
|
||||||
return view('themes.default1.client.kb.article-list.category', compact('all', 'id', 'categorys', '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) {
|
if (count($data) == 0) {
|
||||||
throw new Exception('No data');
|
throw new Exception('No data');
|
||||||
}
|
}
|
||||||
|
|
||||||
//dd(Excel::download(new UserExport($data), $filename.'.'.'xls'));
|
//dd(Excel::download(new UserExport($data), $filename.'.'.'xls'));
|
||||||
return Excel::download(new UserExport($data), $filename.'.'.'xlsx');
|
return Excel::download(new UserExport($data), $filename.'.'.'xlsx');
|
||||||
}
|
}
|
||||||
|
@@ -553,6 +553,7 @@ class SettingsController extends Controller
|
|||||||
$attributes[$key]['author'] = $field['author'];
|
$attributes[$key]['author'] = $field['author'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//dd($attributes);
|
//dd($attributes);
|
||||||
return $attributes;
|
return $attributes;
|
||||||
}
|
}
|
||||||
|
@@ -169,6 +169,7 @@ class UpgradeController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
|
|
||||||
//Artisan::call('migrate', ['--force' => true]);
|
//Artisan::call('migrate', ['--force' => true]);
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception $ex) {
|
} catch (Exception $ex) {
|
||||||
@@ -397,6 +398,7 @@ class UpgradeController extends Controller
|
|||||||
try {
|
try {
|
||||||
if (Utility::getFileVersion() > Utility::getDatabaseVersion()) {
|
if (Utility::getFileVersion() > Utility::getDatabaseVersion()) {
|
||||||
$url = url('database-upgrade');
|
$url = url('database-upgrade');
|
||||||
|
|
||||||
//$string = "Your Database is outdated please upgrade <a href=$url>Now !</a>";
|
//$string = "Your Database is outdated please upgrade <a href=$url>Now !</a>";
|
||||||
return view('themes.default1.update.database', compact('url'));
|
return view('themes.default1.update.database', compact('url'));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -13,4 +13,9 @@ class Department extends BaseModel
|
|||||||
'template_set', 'auto_ticket_response', 'auto_message_response',
|
'template_set', 'auto_ticket_response', 'auto_message_response',
|
||||||
'auto_response_email', 'recipient', 'group_access', 'department_sign',
|
'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;
|
namespace App\Model\helpdesk\Ticket;
|
||||||
|
|
||||||
use App\BaseModel;
|
use App\BaseModel;
|
||||||
|
use App\Model\helpdesk\Agent\Location;
|
||||||
|
|
||||||
class Tickets extends BaseModel
|
class Tickets extends BaseModel
|
||||||
{
|
{
|
||||||
protected $table = 'tickets';
|
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()
|
public function thread()
|
||||||
{
|
{
|
||||||
return $this->hasMany(\App\Model\helpdesk\Ticket\Ticket_Thread::class, 'ticket_id');
|
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');
|
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()
|
public function extraFields()
|
||||||
{
|
{
|
||||||
$id = $this->attributes['id'];
|
$id = $this->attributes['id'];
|
||||||
|
17
app/User.php
17
app/User.php
@@ -8,6 +8,7 @@ use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
|||||||
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
|
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Tymon\JWTAuth\Contracts\JWTSubject as AuthenticatableUserContract;
|
use Tymon\JWTAuth\Contracts\JWTSubject as AuthenticatableUserContract;
|
||||||
|
use App\Model\helpdesk\Agent\Department;
|
||||||
|
|
||||||
class User extends Model implements AuthenticatableContract, CanResetPasswordContract, AuthenticatableUserContract
|
class User extends Model implements AuthenticatableContract, CanResetPasswordContract, AuthenticatableUserContract
|
||||||
{
|
{
|
||||||
@@ -26,10 +27,13 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['user_name', 'email', 'password', 'active', 'first_name', 'last_name', 'ban', 'ext', 'mobile', 'profile_pic',
|
protected $fillable = [
|
||||||
'phone_number', 'company', 'agent_sign', 'account_type', 'account_status',
|
'user_name', 'email', 'password', 'active', 'first_name', 'last_name', 'ban', 'ext', 'mobile', 'profile_pic',
|
||||||
'assign_group', 'primary_dpt', 'agent_tzone', 'daylight_save', 'limit_access',
|
'phone_number', 'company', 'agent_sign', 'account_type', 'account_status',
|
||||||
'directory_listing', 'vacation_mode', 'role', 'internal_note', 'country_code', 'not_accept_ticket', 'is_delete', ];
|
'assign_group', 'primary_dpt', 'agent_tzone', 'daylight_save', 'limit_access',
|
||||||
|
'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.
|
* The attributes excluded from the model's JSON form.
|
||||||
@@ -175,6 +179,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
|
|||||||
{
|
{
|
||||||
return $this->name();
|
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)
|
public function getFirstNameAttribute($value)
|
||||||
{
|
{
|
||||||
|
@@ -101,6 +101,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
'key' => env('APP_KEY', 'base64:h3KjrHeVxyE+j6c8whTAs2YI+7goylGZ/e2vElgXT6I='),
|
'key' => env('APP_KEY', 'base64:h3KjrHeVxyE+j6c8whTAs2YI+7goylGZ/e2vElgXT6I='),
|
||||||
'cipher' => 'AES-256-CBC',
|
'cipher' => 'AES-256-CBC',
|
||||||
|
'key' => 'base64:MwXqXnQ6V0nvPvN6cKybA2nKFtAyYv9FItYX0ZrB67g=', // dán key thật vào đây
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Logging Configuration
|
| 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
@@ -1,19 +1,19 @@
|
|||||||
@extends('themes.default1.agent.layout.agent')
|
@extends('themes.default1.agent.layout.agent')
|
||||||
|
|
||||||
@section('Tickets')
|
@section('Tickets')
|
||||||
class="nav-link active"
|
class="nav-link active"
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('ticket-bar')
|
@section('ticket-bar')
|
||||||
active
|
active
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('newticket')
|
@section('newticket')
|
||||||
class="nav-link active"
|
class="nav-link active"
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('ticket')
|
@section('ticket')
|
||||||
class="active"
|
class="active"
|
||||||
@stop
|
@stop
|
||||||
<style>
|
<style>
|
||||||
.clear-input {
|
.clear-input {
|
||||||
@@ -26,363 +26,409 @@ class="active"
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@section('PageHeader')
|
@section('PageHeader')
|
||||||
<h1>{{Lang::get('lang.tickets')}}</h1>
|
<h1>{{ Lang::get('lang.tickets') }}</h1>
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
{!! Form::open(['route'=>'post.newticket','method'=>'post','id'=>'form']) !!}
|
{!! Form::open(['route' => 'post.newticket', 'method' => 'post', 'id' => 'form']) !!}
|
||||||
@if(Session::has('success'))
|
@if (Session::has('success'))
|
||||||
<div class="alert alert-success alert-dismissable">
|
<div class="alert alert-success alert-dismissable">
|
||||||
<i class="fas fa-check-circle"></i>
|
<i class="fas fa-check-circle"></i>
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
{{Session::get('success')}}
|
{{ Session::get('success') }}
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
<!-- failure message -->
|
|
||||||
@if(Session::has('fails'))
|
|
||||||
<div class="alert alert-danger alert-dismissable">
|
|
||||||
<i class="fas fa-ban"></i>
|
|
||||||
<b>{!! Lang::get('lang.alert') !!}!</b>
|
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
|
||||||
{{Session::get('fails')}}
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if(Session::has('errors'))
|
|
||||||
<div class="alert alert-danger alert-dismissable">
|
|
||||||
<i class="fas fa-ban"></i>
|
|
||||||
<b>{!! Lang::get('lang.alert') !!}!</b>
|
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
|
||||||
<br/>
|
|
||||||
@if($errors->first('email'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('email', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('first_name'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('first_name', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('phone'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('phone', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('subject'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('subject', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('body'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('body', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('code'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('code', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
@if($errors->first('mobile'))
|
|
||||||
<li class="error-message-padding">{!! $errors->first('mobile', ':message') !!}</li>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<div class="card card-light">
|
|
||||||
|
|
||||||
<div class="card-header" id='box-header1'>
|
|
||||||
<h3 class="card-title">{!! Lang::get('lang.create_ticket') !!}</h3>
|
|
||||||
</div><!-- /.box-header -->
|
|
||||||
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="card card-light">
|
|
||||||
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">{!! Lang::get('lang.user_details') !!}:</h3>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<!-- email -->
|
|
||||||
<div class="form-group {{ $errors->has('email') ? 'has-error' : '' }}">
|
|
||||||
{!! Form::label('email',Lang::get('lang.email')) !!}
|
|
||||||
@if ($email_mandatory->status == 1)
|
|
||||||
<span class="text-red"> *</span>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
{!! Form::text('email',null,['class' => 'form-control', 'id' => 'email']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-4">
|
|
||||||
<!-- email -->
|
|
||||||
<div class="form-group {{ $errors->has('first_name') ? 'has-error' : '' }}">
|
|
||||||
{!! Form::label('email',Lang::get('lang.first_name')) !!} <span class="text-red"> *</span>
|
|
||||||
<!-- {!! Form::text('email',null,['class' => 'form-control'],['id' => 'email']) !!} -->
|
|
||||||
<input type="text" name="first_name" id="first_name" class="form-control">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-4">
|
|
||||||
<!-- full name -->
|
|
||||||
<div class="form-group {{ $errors->has('last_name') ? 'has-error' : '' }}">
|
|
||||||
{!! Form::label('fullname',Lang::get('lang.last_name')) !!} <span class="text-red"></span>
|
|
||||||
<input type="text" name="last_name" id="last_name" class="form-control">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-1 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
|
||||||
<div class="form-group {{ $errors->has('code') ? 'has-error' : '' }}">
|
|
||||||
{!! Form::label('code',Lang::get('lang.country-code')) !!}
|
|
||||||
@if ($email_mandatory->status == 0 || $settings->status == 1)
|
|
||||||
<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')]) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
<!-- phone -->
|
|
||||||
<div class="form-group {{ $errors->has('mobile') ? 'has-error' : '' }}">
|
|
||||||
<label>{!! Lang::get('lang.mobile_number') !!}:</label>
|
|
||||||
@if ($email_mandatory->status == 0 || $settings->status == 1)
|
|
||||||
<span class="text-red"> *</span>
|
|
||||||
@endif
|
|
||||||
{!! Form::input('number','mobile',null,['class' => 'form-control', 'id' => 'mobile']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<!-- phone -->
|
|
||||||
<div class="form-group {{ $errors->has('phone') ? 'has-error' : '' }}">
|
|
||||||
<label>{!! Lang::get('lang.phone') !!}:</label>
|
|
||||||
{!! Form::input('number','phone',null,['class' => 'form-control', 'id' => 'phone_number']) !!}
|
|
||||||
{!! $errors->first('phone', '<spam class="help-block text-red">:message</spam>') !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <div class="form-group">
|
|
||||||
<div class="col-md-2">
|
|
||||||
<label>Ticket Notice:</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="checkbox" name="notice" id=""> Send alert to User
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
@endif
|
||||||
|
<!-- failure message -->
|
||||||
<div class="card card-light">
|
@if (Session::has('fails'))
|
||||||
|
<div class="alert alert-danger alert-dismissable">
|
||||||
<div class="card-header">
|
<i class="fas fa-ban"></i>
|
||||||
|
<b>{!! Lang::get('lang.alert') !!}!</b>
|
||||||
<h3 class="card-title">{!! Lang::get('lang.ticket_option') !!}:</h3>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
</div>
|
{{ Session::get('fails') }}
|
||||||
|
|
||||||
<div class="card-body">
|
|
||||||
<!-- ticket options -->
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3">
|
|
||||||
<div class="form-group">
|
|
||||||
<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']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<!-- sla plan -->
|
|
||||||
<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']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<!-- due date -->
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<!-- assign to -->
|
|
||||||
<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']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="response" class="col-md-6 form-group"></div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
{{-- Event fire --}}
|
|
||||||
<?php \Illuminate\Support\Facades\Event::dispatch(new App\Events\ClientTicketForm()); ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
@endif
|
||||||
|
@if (Session::has('errors'))
|
||||||
|
<div class="alert alert-danger alert-dismissable">
|
||||||
|
<i class="fas fa-ban"></i>
|
||||||
|
<b>{!! Lang::get('lang.alert') !!}!</b>
|
||||||
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
|
<br />
|
||||||
|
@if ($errors->first('email'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('email', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('first_name'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('first_name', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('phone'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('phone', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('subject'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('subject', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('body'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('body', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('code'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('code', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
@if ($errors->first('mobile'))
|
||||||
|
<li class="error-message-padding">{!! $errors->first('mobile', ':message') !!}</li>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
<div class="card card-light">
|
<div class="card card-light">
|
||||||
|
|
||||||
<div class="card-header">
|
<div class="card-header" id='box-header1'>
|
||||||
<h3 class="card-title">{!! Lang::get('lang.ticket_detail') !!}:</h3>
|
<h3 class="card-title">{!! Lang::get('lang.create_ticket') !!}</h3>
|
||||||
</div>
|
</div><!-- /.box-header -->
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<!-- ticket details -->
|
|
||||||
<div class="form-group">
|
<div class="card card-light">
|
||||||
<!-- subject -->
|
|
||||||
<div class="form-group {{ $errors->has('subject') ? 'has-error' : '' }}">
|
<div class="card-header">
|
||||||
<div class="row">
|
<h3 class="card-title">{!! Lang::get('lang.user_details') !!}:</h3>
|
||||||
<div class="col-md-1">
|
</div>
|
||||||
<label>{!! Lang::get('lang.subject') !!}:<span class="text-red"> *</span></label>
|
|
||||||
</div>
|
<div class="card-body">
|
||||||
<div class="col-md-11">
|
|
||||||
{!! Form::text('subject',null,['class' => 'form-control']) !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group {{ $errors->has('body') ? 'has-error' : '' }}">
|
|
||||||
<!-- details -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-1">
|
|
||||||
<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;"]) !!}
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<!-- priority -->
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-1">
|
<div class="col-md-4">
|
||||||
<label>{!! Lang::get('lang.priority') !!}:</label>
|
<!-- email -->
|
||||||
|
<div class="form-group {{ $errors->has('email') ? 'has-error' : '' }}">
|
||||||
|
{!! Form::label('email', Lang::get('lang.email')) !!}
|
||||||
|
@if ($email_mandatory->status == 1)
|
||||||
|
<span class="text-red"> *</span>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
{!! Form::text('email', null, ['class' => 'form-control', 'id' => 'email']) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<!-- email -->
|
||||||
|
<div class="form-group {{ $errors->has('first_name') ? 'has-error' : '' }}">
|
||||||
|
{!! Form::label('email', Lang::get('lang.first_name')) !!} <span class="text-red"> *</span>
|
||||||
|
<!-- {!! Form::text('email', null, ['class' => 'form-control'], ['id' => 'email']) !!} -->
|
||||||
|
<input type="text" name="first_name" id="first_name" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<!-- full name -->
|
||||||
|
<div class="form-group {{ $errors->has('last_name') ? 'has-error' : '' }}">
|
||||||
|
{!! Form::label('fullname', Lang::get('lang.last_name')) !!} <span class="text-red"></span>
|
||||||
|
<input type="text" name="last_name" id="last_name" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-1 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
||||||
|
<div class="form-group {{ $errors->has('code') ? 'has-error' : '' }}">
|
||||||
|
{!! Form::label('code', Lang::get('lang.country-code')) !!}
|
||||||
|
@if ($email_mandatory->status == 0 || $settings->status == 1)
|
||||||
|
<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'),
|
||||||
|
]) !!}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<?php $Priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('status','=',1)->get(); ?>
|
<!-- phone -->
|
||||||
{!! Form::select('priority', [Lang::get('lang.priorities')=>$Priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
<div class="form-group {{ $errors->has('mobile') ? 'has-error' : '' }}">
|
||||||
|
<label>{!! Lang::get('lang.mobile_number') !!}:</label>
|
||||||
|
@if ($email_mandatory->status == 0 || $settings->status == 1)
|
||||||
|
<span class="text-red"> *</span>
|
||||||
|
@endif
|
||||||
|
{!! Form::input('number', 'mobile', null, ['class' => 'form-control', 'id' => 'mobile']) !!}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<!-- phone -->
|
||||||
|
<div class="form-group {{ $errors->has('phone') ? 'has-error' : '' }}">
|
||||||
|
<label>{!! Lang::get('lang.phone') !!}:</label>
|
||||||
|
{!! Form::input('number', 'phone', null, ['class' => 'form-control', 'id' => 'phone_number']) !!}
|
||||||
|
{!! $errors->first('phone', '<spam class="help-block text-red">:message</spam>') !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="form-group">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label>Ticket Notice:</label>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="checkbox" name="notice" id=""> Send alert to User
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card-footer">
|
|
||||||
<div class="row">
|
<div class="card card-light">
|
||||||
<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();">
|
<div class="card-header">
|
||||||
|
|
||||||
|
<h3 class="card-title">{!! Lang::get('lang.ticket_option') !!}:</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<!-- ticket options -->
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="form-group">
|
||||||
|
<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',
|
||||||
|
]) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<!-- sla plan -->
|
||||||
|
<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',
|
||||||
|
]) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<!-- due date -->
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<!-- assign to -->
|
||||||
|
<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'],
|
||||||
|
) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="response" class="col-md-6 form-group"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
{{-- Event fire --}}
|
||||||
|
<?php \Illuminate\Support\Facades\Event::dispatch(new App\Events\ClientTicketForm()); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card card-light">
|
||||||
|
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">{!! Lang::get('lang.ticket_detail') !!}:</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<!-- ticket details -->
|
||||||
|
<div class="form-group">
|
||||||
|
<!-- subject -->
|
||||||
|
<div class="form-group {{ $errors->has('subject') ? 'has-error' : '' }}">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label>{!! Lang::get('lang.subject') !!}:<span class="text-red"> *</span></label>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-11">
|
||||||
|
{!! Form::text('subject', null, ['class' => 'form-control']) !!}
|
||||||
|
</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">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<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;',
|
||||||
|
]) !!}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<!-- priority -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label>{!! Lang::get('lang.priority') !!}:</label>
|
||||||
|
</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'],
|
||||||
|
) !!}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div><!-- /. box -->
|
<div class="card-footer">
|
||||||
{!! Form::close() !!}
|
<div class="row">
|
||||||
<script type="text/javascript">
|
<div class="col-md-3">
|
||||||
$(document).ready(function () {
|
<input type="submit" value="{!! Lang::get('lang.create_ticket') !!}" class="btn btn-primary"
|
||||||
var helpTopic = $("#selectid").val();
|
onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();">
|
||||||
send(helpTopic);
|
</div>
|
||||||
$("#selectid").on("change", function () {
|
</div>
|
||||||
helpTopic = $("#selectid").val();
|
</div>
|
||||||
|
</div><!-- /. box -->
|
||||||
|
{!! Form::close() !!}
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var helpTopic = $("#selectid").val();
|
||||||
send(helpTopic);
|
send(helpTopic);
|
||||||
|
$("#selectid").on("change", function() {
|
||||||
|
helpTopic = $("#selectid").val();
|
||||||
|
send(helpTopic);
|
||||||
|
});
|
||||||
|
|
||||||
|
function send(helpTopic) {
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ url('/get-helptopic-form') }}",
|
||||||
|
data: {
|
||||||
|
'helptopic': helpTopic
|
||||||
|
},
|
||||||
|
type: "GET",
|
||||||
|
dataType: "html",
|
||||||
|
success: function(response) {
|
||||||
|
$("#response").html(response);
|
||||||
|
},
|
||||||
|
error: function(response) {
|
||||||
|
$("#response").html(response);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
function send(helpTopic) {
|
$(function() {
|
||||||
$.ajax({
|
$("textarea").summernote({
|
||||||
url: "{{url('/get-helptopic-form')}}",
|
height: 300,
|
||||||
data: {'helptopic': helpTopic},
|
tabsize: 2,
|
||||||
type: "GET",
|
toolbar: [
|
||||||
dataType: "html",
|
['style', ['bold', 'italic', 'underline', 'clear']],
|
||||||
success: function (response) {
|
['font', ['strikethrough', 'superscript', 'subscript']],
|
||||||
$("#response").html(response);
|
['fontsize', ['fontsize']],
|
||||||
},
|
['color', ['color']],
|
||||||
error: function (response) {
|
['para', ['ul', 'ol', 'paragraph']],
|
||||||
$("#response").html(response);
|
['height', ['height']]
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#form').submit(function() {
|
||||||
|
var duedate = document.getElementById('datemask').value;
|
||||||
|
if (duedate) {
|
||||||
|
var pattern = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
|
||||||
|
if (pattern.test(duedate) === true) {
|
||||||
|
$('#duedate').removeClass("has-error");
|
||||||
|
$('#clear-up').remove();
|
||||||
|
} 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>"
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
});
|
$(document).ready(function() {
|
||||||
$(function () {
|
$("#email").autocomplete({
|
||||||
$("textarea").summernote({
|
source: "{!! URL::route('post.newticket.autofill') !!}",
|
||||||
height: 300,
|
minLength: 1,
|
||||||
tabsize: 2,
|
select: function(evt, ui) {
|
||||||
toolbar: [
|
// this.form.phone_number.value = ui.item.phone_number;
|
||||||
['style', ['bold', 'italic', 'underline', 'clear']],
|
// this.form.user_name.value = ui.item.user_name;
|
||||||
['font', ['strikethrough', 'superscript', 'subscript']],
|
if (ui.item.first_name) {
|
||||||
['fontsize', ['fontsize']],
|
this.form.first_name.value = ui.item.first_name;
|
||||||
['color', ['color']],
|
}
|
||||||
['para', ['ul', 'ol', 'paragraph']],
|
if (ui.item.last_name) {
|
||||||
['height', ['height']]
|
this.form.last_name.value = ui.item.last_name;
|
||||||
]
|
}
|
||||||
});
|
if (ui.item.country_code) {
|
||||||
});
|
this.form.country_code.value = ui.item.country_code;
|
||||||
|
}
|
||||||
$(document).ready(function () {
|
if (ui.item.phone_number) {
|
||||||
$('#form').submit(function () {
|
this.form.phone_number.value = ui.item.phone_number;
|
||||||
var duedate = document.getElementById('datemask').value;
|
}
|
||||||
if (duedate) {
|
if (ui.item.mobile) {
|
||||||
var pattern = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
|
this.form.mobile.value = ui.item.mobile;
|
||||||
if (pattern.test(duedate) === true) {
|
}
|
||||||
$('#duedate').removeClass("has-error");
|
|
||||||
$('#clear-up').remove();
|
|
||||||
} 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>");
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
$(document).ready(function(){
|
|
||||||
$("#email").autocomplete({
|
|
||||||
source:"{!!URL::route('post.newticket.autofill')!!}",
|
|
||||||
minLength:1,
|
|
||||||
select:function(evt, ui) {
|
|
||||||
// this.form.phone_number.value = ui.item.phone_number;
|
|
||||||
// this.form.user_name.value = ui.item.user_name;
|
|
||||||
if(ui.item.first_name) {
|
|
||||||
this.form.first_name.value = ui.item.first_name;
|
|
||||||
}
|
|
||||||
if(ui.item.last_name) {
|
|
||||||
this.form.last_name.value = ui.item.last_name;
|
|
||||||
}
|
|
||||||
if(ui.item.country_code) {
|
|
||||||
this.form.country_code.value = ui.item.country_code;
|
|
||||||
}
|
|
||||||
if(ui.item.phone_number) {
|
|
||||||
this.form.phone_number.value = ui.item.phone_number;
|
|
||||||
}
|
|
||||||
if(ui.item.mobile) {
|
|
||||||
this.form.mobile.value = ui.item.mobile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$(function () {
|
$(function() {
|
||||||
var picker = $('#datemask').datetimepicker({
|
var picker = $('#datemask').datetimepicker({
|
||||||
format: 'DD/MM/YYYY',
|
format: 'DD/MM/YYYY',
|
||||||
});
|
});
|
||||||
picker.on('dp.change', function(e) {
|
picker.on('dp.change', function(e) {
|
||||||
if (e.date) {
|
if (e.date) {
|
||||||
$('.clear-input').show();
|
$('.clear-input').show();
|
||||||
} else {
|
} else {
|
||||||
|
$('.clear-input').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.clear-input').click(function() {
|
||||||
|
$('#datemask').val('');
|
||||||
$('.clear-input').hide();
|
$('.clear-input').hide();
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.clear-input').click(function() {
|
|
||||||
$('#datemask').val('');
|
|
||||||
$('.clear-input').hide();
|
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
</script>
|
||||||
</script>
|
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3608
resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php
Executable file → Normal file
3608
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')}}
|
{{Session::get('fails')}}
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
gfggggdgd
|
||||||
@if(Session::has('errors'))
|
@if(Session::has('errors'))
|
||||||
<div class="alert alert-danger alert-dismissable">
|
<div class="alert alert-danger alert-dismissable">
|
||||||
<i class="fas fa-ban"></i>
|
<i class="fas fa-ban"></i>
|
||||||
|
@@ -101,17 +101,17 @@ class="nav-link active"
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<!-- email address -->
|
<label for="dept_id">Phòng ban</label>
|
||||||
{!! Form::label('email',Lang::get('lang.email_address')) !!}
|
<select class="form-control" name="dept_id" id="dept_id" required>
|
||||||
<div>
|
<option value="">-- Chọn phòng ban --</option>
|
||||||
{{$user->email}}
|
@foreach ($departments as $department)
|
||||||
</div>
|
<option value="{{ $department->id }}"
|
||||||
</div>
|
{{ $user->dept_id == $department->id ? 'selected' : '' }}>
|
||||||
<div class="form-group {{ $errors->has('company') ? 'has-error' : '' }}">
|
{{ $department->name }}
|
||||||
<!-- company -->
|
</option>
|
||||||
{!! Form::label('company',Lang::get('lang.company')) !!}
|
@endforeach
|
||||||
{!! Form::text('company',null,['class' => 'form-control']) !!}
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- phone extension -->
|
<!-- phone extension -->
|
||||||
<div class="col-sm-2 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
<div class="col-sm-2 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
||||||
|
@@ -94,6 +94,12 @@ class="active"
|
|||||||
<div class="form-group row">
|
<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 class='col-sm-4'><label>{!! Lang::get('lang.company') !!}:</label></div> <div class='col-sm-7'> {{ $user->company }}</div>
|
||||||
</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="form-group row">
|
||||||
<div class='col-sm-4'><label>{!! Lang::get('lang.role') !!}:</label></div> <div class='col-sm-7'> {{ $user->role }}</div>
|
<div class='col-sm-4'><label>{!! Lang::get('lang.role') !!}:</label></div> <div class='col-sm-7'> {{ $user->role }}</div>
|
||||||
</div>
|
</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
1245
resources/views/themes/default1/client/helpdesk/ckeckticket.blade.php
Executable file → Normal file
1245
resources/views/themes/default1/client/helpdesk/ckeckticket.blade.php
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
357
resources/views/themes/default1/client/helpdesk/form.blade.php
Executable file → Normal file
357
resources/views/themes/default1/client/helpdesk/form.blade.php
Executable file → Normal file
@@ -1,28 +1,29 @@
|
|||||||
@extends('themes.default1.client.layout.client')
|
@extends('themes.default1.client.layout.client')
|
||||||
|
|
||||||
@section('title')
|
@section('title')
|
||||||
{!! Lang::get('lang.submit_a_ticket') !!} -
|
{!! Lang::get('lang.submit_a_ticket') !!} -
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('submit')
|
@section('submit')
|
||||||
class = "nav-item active"
|
class = "nav-item active"
|
||||||
@stop
|
@stop
|
||||||
<!-- breadcrumbs -->
|
<!-- breadcrumbs -->
|
||||||
@section('breadcrumb')
|
@section('breadcrumb')
|
||||||
{{--<div class="site-hero clearfix">--}}
|
{{-- <div class="site-hero clearfix"> --}}
|
||||||
<ol class="breadcrumb float-sm-right ">
|
<ol class="breadcrumb float-sm-right ">
|
||||||
<style>
|
<style>
|
||||||
.words {
|
.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>
|
</style>
|
||||||
<li class="breadcrumb-item"> <i class="fas fa-home"> </i> {!! Lang::get('lang.you_are_here') !!} : </li>
|
<li class="breadcrumb-item"> <i class="fas fa-home"> </i> {!! Lang::get('lang.you_are_here') !!} : </li>
|
||||||
<li><a class="words" href="{{url('/')}}">{!! Lang::get('lang.home') !!}</a></li>
|
<li><a class="words" href="{{ url('/') }}">{!! Lang::get('lang.home') !!}</a></li>
|
||||||
<li class="words" style="margin-right: 10px">></li>
|
<li class="words" style="margin-right: 10px">></li>
|
||||||
|
|
||||||
<li><a href="{!! URL::route('form') !!}">{!! Lang::get('lang.submit_a_ticket') !!}</a></li>
|
<li><a href="{!! URL::route('form') !!}">{!! Lang::get('lang.submit_a_ticket') !!}</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
@stop
|
@stop
|
||||||
<!-- /breadcrumbs -->
|
<!-- /breadcrumbs -->
|
||||||
@section('check')
|
@section('check')
|
||||||
@@ -38,26 +39,27 @@ class = "nav-item active"
|
|||||||
<i class="line"></i>{!! Lang::get('lang.have_a_ticket') !!}?
|
<i class="line"></i>{!! Lang::get('lang.have_a_ticket') !!}?
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
@if(Session::has('check'))
|
@if (Session::has('check'))
|
||||||
@if (count($errors) > 0)
|
@if (count($errors) > 0)
|
||||||
<div class="alert alert-danger alert-dismissable">
|
<div class="alert alert-danger alert-dismissable">
|
||||||
<i class="fa fa-ban"></i>
|
<i class="fa fa-ban"></i>
|
||||||
<b>{!! Lang::get('lang.alert') !!} !</b>
|
<b>{!! Lang::get('lang.alert') !!} !</b>
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
@foreach ($errors->all() as $error)
|
@foreach ($errors->all() as $error)
|
||||||
<li>{{ $error }}</li>
|
<li>{{ $error }}</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{!! Form::open(['url' => 'checkmyticket' , 'method' => 'POST'] )!!}
|
{!! Form::open(['url' => 'checkmyticket', 'method' => 'POST']) !!}
|
||||||
{!! Form::label('email',Lang::get('lang.email')) !!}<span class="text-red"> *</span>
|
{!! Form::label('email', Lang::get('lang.email')) !!}<span class="text-red"> *</span>
|
||||||
{!! Form::text('email_address',null,['class' => 'form-control form-group']) !!}
|
{!! 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::label('ticket_number', Lang::get('lang.ticket_number')) !!}<span class="text-red"> *</span>
|
||||||
{!! Form::text('ticket_number',null,['class' => 'form-control form-group']) !!}
|
{!! 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') !!}
|
<i class="fas fa-save"></i> {!! Lang::get('lang.check_ticket_status') !!}
|
||||||
</button>
|
</button>
|
||||||
{!! Form::close() !!}
|
{!! Form::close() !!}
|
||||||
@@ -71,38 +73,38 @@ class = "nav-item active"
|
|||||||
|
|
||||||
<div id="content" class="site-content col-md-9">
|
<div id="content" class="site-content col-md-9">
|
||||||
|
|
||||||
@if(Session::has('message'))
|
@if (Session::has('message'))
|
||||||
<div class="alert alert-success alert-dismissable">
|
<div class="alert alert-success alert-dismissable">
|
||||||
<i class="fas fa-check-circle"></i>
|
<i class="fas fa-check-circle"></i>
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
{!! Session::get('message') !!}
|
{!! Session::get('message') !!}
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@if (count($errors) > 0)
|
@if (count($errors) > 0)
|
||||||
@if(Session::has('check'))
|
@if (Session::has('check'))
|
||||||
<?php goto a; ?>
|
<?php goto a; ?>
|
||||||
@endif
|
@endif
|
||||||
@if(!Session::has('error'))
|
@if (!Session::has('error'))
|
||||||
<div class="alert alert-danger alert-dismissable">
|
<div class="alert alert-danger alert-dismissable">
|
||||||
<i class="fas fa-ban"></i>
|
<i class="fas fa-ban"></i>
|
||||||
<b>{!! Lang::get('lang.alert') !!} !</b>
|
<b>{!! Lang::get('lang.alert') !!} !</b>
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
<ul>
|
<ul>
|
||||||
@foreach ($errors->all() as $error)
|
@foreach ($errors->all() as $error)
|
||||||
<li>{{ $error }}</li>
|
<li>{{ $error }}</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
<?php a: ?>
|
<?php a: ?>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$encrypter = app('Illuminate\Encryption\Encrypter');
|
$encrypter = app('Illuminate\Encryption\Encrypter');
|
||||||
$encrypted_token = $encrypter->encrypt(csrf_token());
|
$encrypted_token = $encrypter->encrypt(csrf_token());
|
||||||
?>
|
?>
|
||||||
<input id="token" type="hidden" value="{{$encrypted_token}}">
|
<input id="token" type="hidden" value="{{ $encrypted_token }}">
|
||||||
{!! Form::open(['route'=>'client.form.post','method'=>'post', 'enctype'=>'multipart/form-data']) !!}
|
{!! Form::open(['route' => 'client.form.post', 'method' => 'post', 'enctype' => 'multipart/form-data']) !!}
|
||||||
|
|
||||||
<article class="hentry">
|
<article class="hentry">
|
||||||
|
|
||||||
@@ -117,169 +119,196 @@ class = "nav-item active"
|
|||||||
|
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
|
|
||||||
@if(Auth::user())
|
@if (Auth::user())
|
||||||
|
{!! Form::hidden('Name', Auth::user()->user_name, ['class' => 'form-control']) !!}
|
||||||
{!! Form::hidden('Name',Auth::user()->user_name,['class' => 'form-control']) !!}
|
|
||||||
|
|
||||||
@else
|
@else
|
||||||
|
<div class="col-md-12 form-group {{ $errors->has('Name') ? 'has-error' : '' }}">
|
||||||
<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::label('Name',Lang::get('lang.name')) !!}<span class="text-red"> *</span>
|
{!! Form::text('Name', null, ['class' => 'form-control']) !!}
|
||||||
{!! Form::text('Name',null,['class' => 'form-control']) !!}
|
</div>
|
||||||
</div>
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(Auth::user())
|
@if (Auth::user())
|
||||||
|
|
||||||
{!! Form::hidden('Email',Auth::user()->email,['class' => 'form-control']) !!}
|
|
||||||
|
|
||||||
|
{!! Form::hidden('Email', Auth::user()->email, ['class' => 'form-control']) !!}
|
||||||
@else
|
@else
|
||||||
<div class="col-md-12 form-group {{ $errors->has('Email') ? 'has-error' : '' }}">
|
<div class="col-md-12 form-group {{ $errors->has('Email') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('Email',Lang::get('lang.email')) !!}
|
{!! Form::label('Email', Lang::get('lang.email')) !!}
|
||||||
@if($email_mandatory->status == 1 || $email_mandatory->status == '1')
|
@if ($email_mandatory->status == 1 || $email_mandatory->status == '1')
|
||||||
<span class="text-red"> *</span>
|
<span class="text-red"> *</span>
|
||||||
@endif
|
@endif
|
||||||
{!! Form::email('Email',null,['class' => 'form-control']) !!}
|
{!! Form::email('Email', null, ['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(!Auth::user())
|
@if (!Auth::user())
|
||||||
|
|
||||||
<div class="col-md-2 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
<div class="col-md-2 form-group {{ Session::has('country_code_error') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('Code',Lang::get('lang.country-code')) !!}
|
{!! Form::label('Code', Lang::get('lang.country-code')) !!}
|
||||||
@if($email_mandatory->status == 0 || $email_mandatory->status == '0')
|
@if ($email_mandatory->status == 0 || $email_mandatory->status == '0')
|
||||||
<span class="text-red"> *</span>
|
<span class="text-red"> *</span>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{!! Form::text('Code',null,['class' => 'form-control', 'placeholder' => $phonecode, 'title' => Lang::get('lang.enter-country-phone-code')]) !!}
|
{!! Form::text('Code', null, [
|
||||||
</div>
|
'class' => 'form-control',
|
||||||
<div class="col-md-5 form-group {{ $errors->has('mobile') ? 'has-error' : '' }}">
|
'placeholder' => $phonecode,
|
||||||
{!! Form::label('mobile',Lang::get('lang.mobile_number')) !!}
|
'title' => Lang::get('lang.enter-country-phone-code'),
|
||||||
@if($email_mandatory->status == 0 || $email_mandatory->status == '0')
|
]) !!}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-5 form-group {{ $errors->has('mobile') ? 'has-error' : '' }}">
|
||||||
|
{!! Form::label('mobile', Lang::get('lang.mobile_number')) !!}
|
||||||
|
@if ($email_mandatory->status == 0 || $email_mandatory->status == '0')
|
||||||
<span class="text-red"> *</span>
|
<span class="text-red"> *</span>
|
||||||
@endif
|
@endif
|
||||||
{!! Form::text('mobile',null,['class' => 'form-control']) !!}
|
{!! Form::text('mobile', null, ['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5 form-group {{ $errors->has('Phone') ? 'has-error' : '' }}">
|
<div class="col-md-5 form-group {{ $errors->has('Phone') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('Phone',Lang::get('lang.phone')) !!}
|
{!! Form::label('Phone', Lang::get('lang.phone')) !!}
|
||||||
{!! Form::text('Phone',null,['class' => 'form-control']) !!}
|
{!! Form::text('Phone', null, ['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
{!! Form::hidden('mobile',Auth::user()->mobile,['class' => 'form-control']) !!}
|
{!! Form::hidden('mobile', Auth::user()->mobile, ['class' => 'form-control']) !!}
|
||||||
{!! Form::hidden('Code',Auth::user()->country_code,['class' => 'form-control']) !!}
|
{!! Form::hidden('Code', Auth::user()->country_code, ['class' => 'form-control']) !!}
|
||||||
{!! Form::hidden('Phone',Auth::user()->phone_number,['class' => 'form-control']) !!}
|
{!! Form::hidden('Phone', Auth::user()->phone_number, ['class' => 'form-control']) !!}
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
<div class="col-md-12 form-group {{ $errors->has('help_topic') ? 'has-error' : '' }}">
|
<div class="col-md-12 form-group {{ $errors->has('help_topic') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('help_topic', Lang::get('lang.choose_a_help_topic')) !!}
|
{!! Form::label('help_topic', Lang::get('lang.choose_a_help_topic')) !!}
|
||||||
{!! $errors->first('help_topic', '<spam class="help-block">:message</spam>') !!}
|
{!! $errors->first('help_topic', '<spam class="help-block">:message</spam>') !!}
|
||||||
<?php
|
<?php
|
||||||
$forms = App\Model\helpdesk\Form\Forms::get();
|
$forms = App\Model\helpdesk\Form\Forms::get();
|
||||||
$helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->get();
|
$helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->get();
|
||||||
// ?><!---->
|
//
|
||||||
|
?><!---->
|
||||||
<select name="helptopic" class="form-control" id="selectid">
|
<select name="helptopic" class="form-control" id="selectid">
|
||||||
|
|
||||||
@foreach($helptopic as $topic)
|
@foreach ($helptopic as $topic)
|
||||||
<option value="{!! $topic->id !!}">{!! $topic->topic !!}</option>
|
<option value="{!! $topic->id !!}">{!! $topic->topic !!}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<!-- priority -->
|
<!-- priority -->
|
||||||
<?php
|
<?php
|
||||||
$Priority = App\Model\helpdesk\Settings\CommonSettings::select('status')->where('option_name','=', 'user_priority')->first();
|
$Priority = App\Model\helpdesk\Settings\CommonSettings::select('status')->where('option_name', '=', 'user_priority')->first();
|
||||||
$user_Priority=$Priority->status;
|
$user_Priority = $Priority->status;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@if(Auth::user())
|
@if (Auth::user())
|
||||||
|
|
||||||
@if(Auth::user()->active == 1)
|
@if (Auth::user()->active == 1)
|
||||||
@if($user_Priority == 1)
|
@if ($user_Priority == 1)
|
||||||
|
<div class="col-md-12 form-group">
|
||||||
<div class="col-md-12 form-group">
|
<div class="row">
|
||||||
<div class="row">
|
<div class="col-md-1">
|
||||||
<div class="col-md-1">
|
<label>{!! Lang::get('lang.priority') !!}:</label>
|
||||||
<label>{!! Lang::get('lang.priority') !!}:</label>
|
</div>
|
||||||
</div>
|
<div class="col-md-12">
|
||||||
<div class="col-md-12">
|
<?php $Priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('status', '=', 1)->get(); ?>
|
||||||
<?php $Priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('status','=',1)->get(); ?>
|
{!! Form::select('priority', ['Priority' => $Priority->pluck('priority_desc', 'priority_id')->toArray()], null, [
|
||||||
{!! Form::select('priority', ['Priority'=>$Priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
'class' => 'form-control select',
|
||||||
</div>
|
]) !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
<div class="col-md-12 form-group {{ $errors->has('Subject') ? 'has-error' : '' }}">
|
<div class="col-md-12 form-group {{ $errors->has('Subject') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('Subject',Lang::get('lang.subject')) !!}<span class="text-red"> *</span>
|
{!! Form::label('Subject', Lang::get('lang.subject')) !!}<span class="text-red"> *</span>
|
||||||
{!! Form::text('Subject',null,['class' => 'form-control']) !!}
|
{!! 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>
|
||||||
<div class="col-md-12 form-group {{ $errors->has('Details') ? 'has-error' : '' }}">
|
<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::label('Details', Lang::get('lang.message')) !!}<span class="text-red"> *</span>
|
||||||
{!! Form::textarea('Details',null,['class' => 'form-control']) !!}
|
{!! Form::textarea('Details', null, ['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 form-group">
|
<div class="col-md-12 form-group">
|
||||||
<input type="file" name="attachment[]" multiple/><br/>
|
<input type="file" name="attachment[]" multiple /><br />
|
||||||
{!! Lang::get('lang.max') !!}. {!! $max_size_in_actual !!}
|
{!! Lang::get('lang.max') !!}. {!! $max_size_in_actual !!}
|
||||||
</div>
|
</div>
|
||||||
{{-- Event fire --}}
|
{{-- Event fire --}}
|
||||||
<?php \Illuminate\Support\Facades\Event::dispatch(new App\Events\ClientTicketForm()); ?>
|
<?php \Illuminate\Support\Facades\Event::dispatch(new App\Events\ClientTicketForm()); ?>
|
||||||
<div class="col-md-12" id="response"> </div>
|
<div class="col-md-12" id="response"> </div>
|
||||||
<div id="ss" class="xs-md-6 form-group {{ $errors->has('') ? 'has-error' : '' }}"> </div>
|
<div id="ss" class="xs-md-6 form-group {{ $errors->has('') ? 'has-error' : '' }}"> </div>
|
||||||
<div class="col-md-12 form-group">
|
<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'), [
|
||||||
</div>
|
'type' => 'submit',
|
||||||
<div class="col-md-12" id="response"> </div>
|
'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>
|
<div id="ss" class="xs-md-6 form-group {{ $errors->has('') ? 'has-error' : '' }}"> </div>
|
||||||
|
|
||||||
{!! Form::close() !!}
|
{!! Form::close() !!}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
|====================================================
|
|====================================================
|
||||||
| SELECTED FORM STORED IN SCRIPT
|
| SELECTED FORM STORED IN SCRIPT
|
||||||
|====================================================
|
|====================================================
|
||||||
-->
|
-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$(document).ready(function() {
|
||||||
var helpTopic = $("#selectid").val();
|
var helpTopic = $("#selectid").val();
|
||||||
send(helpTopic);
|
send(helpTopic);
|
||||||
$("#selectid").on("change",function(){
|
$("#selectid").on("change", function() {
|
||||||
helpTopic = $("#selectid").val();
|
helpTopic = $("#selectid").val();
|
||||||
send(helpTopic);
|
send(helpTopic);
|
||||||
});
|
});
|
||||||
function send(helpTopic){
|
|
||||||
$.ajax({
|
|
||||||
url:"{{url('/get-helptopic-form')}}",
|
|
||||||
data:{'helptopic':helpTopic},
|
|
||||||
type:"GET",
|
|
||||||
dataType:"html",
|
|
||||||
success:function(response){
|
|
||||||
$("#response").html(response);
|
|
||||||
},
|
|
||||||
error:function(response){
|
|
||||||
$("#response").html(response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(function() {
|
function send(helpTopic) {
|
||||||
//Add text editor
|
$.ajax({
|
||||||
$("textarea").summernote({
|
url: "{{ url('/get-helptopic-form') }}",
|
||||||
height: 300,
|
data: {
|
||||||
tabsize: 2,
|
'helptopic': helpTopic
|
||||||
toolbar: [
|
},
|
||||||
['style', ['bold', 'italic', 'underline', 'clear']],
|
type: "GET",
|
||||||
['font', ['strikethrough', 'superscript', 'subscript']],
|
dataType: "html",
|
||||||
['fontsize', ['fontsize']],
|
success: function(response) {
|
||||||
['color', ['color']],
|
$("#response").html(response);
|
||||||
['para', ['ul', 'ol', 'paragraph']],
|
},
|
||||||
['height', ['height']]
|
error: function(response) {
|
||||||
]
|
$("#response").html(response);
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
</script>
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
//Add text editor
|
||||||
|
$("textarea").summernote({
|
||||||
|
height: 300,
|
||||||
|
tabsize: 2,
|
||||||
|
toolbar: [
|
||||||
|
['style', ['bold', 'italic', 'underline', 'clear']],
|
||||||
|
['font', ['strikethrough', 'superscript', 'subscript']],
|
||||||
|
['fontsize', ['fontsize']],
|
||||||
|
['color', ['color']],
|
||||||
|
['para', ['ul', 'ol', 'paragraph']],
|
||||||
|
['height', ['height']]
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@stop
|
@stop
|
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
2122
resources/views/themes/default1/client/helpdesk/ticket.blade.php
Executable file → Normal file
2122
resources/views/themes/default1/client/helpdesk/ticket.blade.php
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
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
|
| Here defining Guest User's routes
|
||||||
|
|
|
|
||||||
|
|
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
// seasrch
|
// seasrch
|
||||||
// Route::POST('tickets/search/', function () {
|
// 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;
|
echo $err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trigger_error(
|
throw new RuntimeException($err);
|
||||||
$err,
|
|
||||||
E_USER_ERROR
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user