diff --git a/.env b/.env index f17696280..b3b316185 100644 --- a/.env +++ b/.env @@ -1,18 +1,17 @@ APP_ENV=local APP_DEBUG=true APP_KEY=SomeRandomString - DB_HOST=localhost -DB_DATABASE= -DB_USERNAME= +DB_DATABASE=fav +DB_USERNAME=root DB_PASSWORD= - CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync - MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null +DB_TYPE=mysql +DB_PORT= diff --git a/.gitignore b/.gitignore index 30bc16279..c47965c25 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -/node_modules \ No newline at end of file +/vendor +/node_modules +.env diff --git a/README.md b/README.md index 0bfcdf160..f67a6cf7c 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,27 @@ -

About Faveo

-

Headquartered in Bangalore, Faveo HELPDESK provides Businesses with an automated Helpdesk system to manage customer support. -

-The word Faveo comes from Latin which means to be favourable. Which truly highlights vision and the scope as well as the functionality of the product that Faveo is. It is specifically designed to cater the needs of startups and SME’s empowering them with state of art, ticket based support system. In today’s competitive startup scenario customer retention is one of the major challenges. Handling client query diligently is all the difference between retaining or losing a long lasting relationship. The company is driven with passion of providing tools for managing consumer queries for strategic insights and helping companies take those decisive decisions. -

-To date, Faveo has been integrated with 6 platforms and every month there is 1 to 2 update releases with new features & platform integration. -

-Faveo can also be customised according to requirement and we do undertake such request. -

-Faveo is designed & developed by Ladybird Web Solution Pvt Ltd, and launched in October 2015.

-

Flavors of Faveo

- +## Laravel PHP Framework +[![Build Status](https://travis-ci.org/laravel/framework.svg)](https://travis-ci.org/laravel/framework) +[![Total Downloads](https://poser.pugx.org/laravel/framework/d/total.svg)](https://packagist.org/packages/laravel/framework) +[![Latest Stable Version](https://poser.pugx.org/laravel/framework/v/stable.svg)](https://packagist.org/packages/laravel/framework) +[![Latest Unstable Version](https://poser.pugx.org/laravel/framework/v/unstable.svg)](https://packagist.org/packages/laravel/framework) +[![License](https://poser.pugx.org/laravel/framework/license.svg)](https://packagist.org/packages/laravel/framework) -

Faveo User Manual

-

Check out Faveo Knowledge Base here

-

Requirements

-

To run Faveo your host just needs a couple of things:

- +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, queueing, and caching. -

Faveo Web Hosting

-

Ladybird Web Host 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.

-

Credits

- +Laravel is accessible, yet powerful, providing powerful tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked. -

Website

-

www.faveohelpdesk.com

+## Official Documentation -

YouTube Channel

-

Click here

+Documentation for the framework can be found on the [Laravel website](http://laravel.com/docs). +## Contributing -

Road Map for Community Edition:

-

Click here

+Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions). -

Don't panic if you come across bugs

-

Faveo is very very new in the market, the product is fully working and is production worthy but it definitely will have some bugs like any software. We fully support Faveo whether free or pro edition, incase you come across any bugs, email us through the contact form. We want to make your experience of using Faveo as memorable as possible, so help us make Faveo a World, top class helpdesk application. Do check out our roadmap to stayed tuned with future releases

\ No newline at end of file +## Security Vulnerabilities + +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell at taylor@laravel.com. All security vulnerabilities will be promptly addressed. + +### License + +The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index dcc0edcea..deab27e51 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -51,12 +51,12 @@ class Handler extends ExceptionHandler { // return response()->view('errors.404', []); // } else { // if(\Config::get('database.install') == 1) { - // if(\Config::get('app.ErrorLog') == '%1%') { - // // \App\Http\Controllers\Common\SettingsController::smtp(); - // // \Mail::send('errors.report', array('e' => $e), function ($message) { - // // $message->to('', '')->subject(''); - // // }); - // } + // // if(\Config::get('app.ErrorLog') == '%1%') { + // // \App\Http\Controllers\Common\SettingsController::smtp(); + // // \Mail::send('errors.report', array('e' => $e), function ($message) { + // // $message->to('', '')->subject('Faveo HELPDESK Pro ERROR'); + // // }); + // // } // } // return response()->view('errors.500', []); // } diff --git a/app/Http/Controllers/API/helpdesk/InstallerApiController.php b/app/Http/Controllers/API/helpdesk/InstallerApiController.php index 77ede0943..e2b0ade17 100644 --- a/app/Http/Controllers/API/helpdesk/InstallerApiController.php +++ b/app/Http/Controllers/API/helpdesk/InstallerApiController.php @@ -18,6 +18,7 @@ use Input; use Redirect; use Session; use View; +use Exception; /** * |======================================================================= @@ -40,7 +41,7 @@ class InstallerApiController extends Controller { * @return type Json */ public function config_database(Request $request) { - error_reporting(E_ALL & ~E_NOTICE); + error_reporting(E_ALL & ~E_NOTICE); // Check for pre install if (\Config::get('database.install') == '%0%') { @@ -87,103 +88,90 @@ class InstallerApiController extends Controller { * @return type Json */ public function config_system(Request $request) { - error_reporting(E_ALL & ~E_NOTICE); + // Check for pre install + if (\Config::get('database.install') == '%0%') { + $firstname = $request->firstname; + $lastname = $request->lastname; + $email = $request->email; + $username = $request->username; + $password = $request->password; + $timezone = $request->timezone; + $datetime = $request->datetime; - try{ - \DB::connection()->getDatabaseName(); + // Migrate database + Artisan::call('migrate', array('--force' => true)); + Artisan::call('db:seed', array('--force' => true)); - // check for database connection - if(\DB::connection()->getDatabaseName()) { - echo "Connected sucessfully to database ".\DB::connection()->getDatabaseName()."."; + // Creating minum settings + $system = System::where('id','=','1')->first(); + $system->time_zone = $timezone; + $system->date_time_format = $datetime; + $system->save(); + + // Creating default form field + $form1 = new Form_details; + $form1->label = 'Name'; + $form1->type = 'text'; + $form1->form_name_id = '1'; + $form1->save(); + + $form2 = new Form_details; + $form2->label = 'Phone'; + $form2->type = 'number'; + $form2->form_name_id = '1'; + $form2->save(); + + $form3 = new Form_details; + $form3->label = 'Email'; + $form3->type = 'text'; + $form3->form_name_id = '1'; + $form3->save(); + + $form4 = new Form_details; + $form4->label = 'Subject'; + $form4->type = 'text'; + $form4->form_name_id = '1'; + $form4->save(); + + $form5 = new Form_details; + $form5->label = 'Details'; + $form5->type = 'textarea'; + $form5->form_name_id = '1'; + $form5->save(); + + // Creating user + $user = User::create(array( + 'first_name' => $firstname, + 'last_name' => $lastname, + 'email' => $email, + 'user_name' => $username, + 'password' => Hash::make($password), + 'active' => 1, + 'role' => 'admin', + 'assign_group' => 'group A', + 'primary_dpt' => 'support', + )); + + // Setting database installed status + $value = '1'; + $install = app_path('../config/database.php'); + $datacontent = File::get($install); + $datacontent = str_replace('%0%', $value, $datacontent); + File::put($install, $datacontent); + + // Applying email configuration on route + $smtpfilepath = "\App\Http\Controllers\Common\SettingsController::smtp()"; + $path22 = app_path('Http/routes.php'); + $content23 = File::get($path22); + $content23 = str_replace('"%smtplink%"', $smtpfilepath, $content23); + File::put($path22, $content23); + + // If user created return success + if($user){ + return ['response'=>'success','status'=>'1']; } - - // Check for pre install - if (\Config::get('database.install') == '%0%') { - $firstname = $request->firstname; - $lastname = $request->lastname; - $email = $request->email; - $username = $request->username; - $password = $request->password; - $timezone = $request->timezone; - $datetime = $request->datetime; - - // Migrate database - Artisan::call('migrate', array('--force' => true)); - Artisan::call('db:seed', array('--force' => true)); - - // Creating minum settings - $system = System::where('id','=','1')->first(); - $system->time_zone = $timezone; - $system->date_time_format = $datetime; - $system->save(); - - // Creating default form field - $form1 = new Form_details; - $form1->label = 'Name'; - $form1->type = 'text'; - $form1->form_name_id = '1'; - $form1->save(); - - $form2 = new Form_details; - $form2->label = 'Phone'; - $form2->type = 'number'; - $form2->form_name_id = '1'; - $form2->save(); - - $form3 = new Form_details; - $form3->label = 'Email'; - $form3->type = 'text'; - $form3->form_name_id = '1'; - $form3->save(); - - $form4 = new Form_details; - $form4->label = 'Subject'; - $form4->type = 'text'; - $form4->form_name_id = '1'; - $form4->save(); - - $form5 = new Form_details; - $form5->label = 'Details'; - $form5->type = 'textarea'; - $form5->form_name_id = '1'; - $form5->save(); - - // Creating user - $user = User::create(array( - 'first_name' => $firstname, - 'last_name' => $lastname, - 'email' => $email, - 'user_name' => $username, - 'password' => Hash::make($password), - 'active' => 1, - 'role' => 'admin', - 'assign_group' => 'group A', - 'primary_dpt' => 'support', - )); - - // Setting database installed status - $value = '1'; - $install = app_path('../config/database.php'); - $datacontent = File::get($install); - $datacontent = str_replace('%0%', $value, $datacontent); - File::put($install, $datacontent); - - // Applying email configuration on route - $smtpfilepath = "\App\Http\Controllers\Common\SettingsController::smtp()"; - $path22 = app_path('Http/routes.php'); - $content23 = File::get($path22); - $content23 = str_replace('"%smtplink%"', $smtpfilepath, $content23); - File::put($path22, $content23); - - // If user created return success - if($user){ - return ['response'=>'success','status'=>'1']; - } - } else { - return ['response'=>'fail','reason'=>'this system is already installed','status'=>'0']; - } - }catch(\Exception $e){ - return $e->getMessage(); + } else { + return ['response'=>'fail','reason'=>'this system is already installed','status'=>'0']; } } } \ No newline at end of file diff --git a/app/Http/Controllers/Admin/helpdesk/AgentController.php b/app/Http/Controllers/Admin/helpdesk/AgentController.php index 76a11d23d..30b3924b1 100644 --- a/app/Http/Controllers/Admin/helpdesk/AgentController.php +++ b/app/Http/Controllers/Admin/helpdesk/AgentController.php @@ -1,10 +1,13 @@ middleware('auth'); + // checking admin roles $this->middleware('roles'); } /** - * get index page + * Get all agent list page * @param type User $user * @return type Response */ @@ -51,13 +64,13 @@ class AgentController extends Controller { } /** - * Show the form for creating a new resource. + * creating a new agent * @param type Assign_team_agent $team_assign_agent * @param type Timezones $timezone * @param type Groups $group * @param type Department $department * @param type Teams $team - * @return type Response + * @return type view */ public function create(Assign_team_agent $team_assign_agent, Timezones $timezone, Groups $group, Department $department, Teams $team) { try { @@ -68,19 +81,19 @@ class AgentController extends Controller { $teams = $team->lists('id', 'name'); return view('themes.default1.admin.helpdesk.agent.agents.create', compact('assign', 'teams', 'agents', 'timezones', 'groups', 'departments', 'team')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } /** - * Store a newly created resource in storage. + * store a new agent * @param type User $user * @param type AgentRequest $request * @param type Assign_team_agent $team_assign_agent * @return type Response */ public function store(User $user, AgentRequest $request, Assign_team_agent $team_assign_agent) { - try { + /* Insert to user table */ $user->role = 'agent'; $user->fill($request->input())->save(); @@ -88,6 +101,7 @@ class AgentController extends Controller { $user->password = Hash::make($password); $requests = $request->input('team_id'); $id = $user->id; + // insert team foreach ($requests as $req) { DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]); } @@ -96,29 +110,22 @@ class AgentController extends Controller { $name = $user->user_name; $email = $user->email; $from = $this->company(); - Mail::send('emails.pass', ['name' => $name, 'password' => $password, 'from' => $from, 'emailadd' => $email], function ($message) use ($email, $name) { - $message->to($email, $name)->subject('[password]'); - }); + // send mail on registration + try{ + Mail::send('emails.pass', ['name' => $name, 'password' => $password, 'from' => $from, 'emailadd' => $email], function ($message) use ($email, $name) { + $message->to($email, $name)->subject('[password]'); + }); + } catch (Exception $e) { + return redirect('agents')->with('fails', 'Some error occuren while sending mail to the agent. Please check email settings'.'
  • '.$e->errorInfo[2].'
  • '); + } return redirect('agents')->with('success', 'Agent Created sucessfully'); } else { return redirect('agents')->with('fails', 'Agent can not Create'); - } - } catch (Exception $e) { - return redirect('agents')->with('fails', 'Agent can not Create'); - } + } } /** - * Display the specified resource. - * @param int $id - * @return Response - */ - public function show($id) { - // - } - - /** - * Show the form for editing the specified resource. + * Editing a selected agent * @param type int $id * @param type User $user * @param type Assign_team_agent $team_assign_agent @@ -146,7 +153,7 @@ class AgentController extends Controller { } /** - * Update the specified resource in storage. + * Update the specified agent in storage. * @param type int $id * @param type User $user * @param type AgentUpdate $request @@ -154,53 +161,53 @@ class AgentController extends Controller { * @return type Response */ public function update($id, User $user, AgentUpdate $request, Assign_team_agent $team_assign_agent) { - try { + + // storing all the details $user = $user->whereId($id)->first(); $daylight_save = $request->input('daylight_save'); $limit_access = $request->input('limit_access'); $directory_listing = $request->input('directory_listing'); $vocation_mode = $request->input('vocation_mode'); //============================================== - $user->daylight_save = $daylight_save; - $user->limit_access = $limit_access; - $user->directory_listing = $directory_listing; - $user->vocation_mode = $vocation_mode; - //============================================== $table = $team_assign_agent->where('agent_id', $id); $table->delete(); $requests = $request->input('team_id'); + // inserting team details foreach ($requests as $req) { DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]); } //Todo For success and failure conditions - $user->fill($request->except('daylight_save', 'limit_access', 'directory_listing', 'vocation_mode', 'assign_team'))->save(); - return redirect('agents')->with('success', 'Agent Updated sucessfully'); - } catch (Exception $e) { - return redirect('agents')->with('fails', 'Agent did not update'); - } + try { + $user->fill($request->except('daylight_save', 'limit_access', 'directory_listing', 'vocation_mode', 'assign_team'))->save(); + return redirect('agents')->with('success', 'Agent Updated sucessfully'); + } catch (Exception $e) { + return redirect('agents')->with('fails', 'Agent did not update'.'
  • '.$e->errorInfo[2].'
  • '); + } } /** - * Remove the specified resource from storage. + * Remove the specified agent from storage. * @param type int $id * @param type User $user * @param type Assign_team_agent $team_assign_agent * @return type Response */ public function destroy($id, User $user, Assign_team_agent $team_assign_agent) { - try { /* Becouse of foreign key we delete team_assign_agent first */ + error_reporting(E_ALL & ~E_NOTICE); $team_assign_agent = $team_assign_agent->where('agent_id', $id); $team_assign_agent->delete(); $user = $user->whereId($id)->first(); - if ($user->delete()) { + try { + $error = 'This staff is related to some tickets'; + $user->id; + $user->delete(); + throw new \Exception($error); return redirect('agents')->with('success', 'Agent Deleted sucessfully'); - } else { - return redirect('agents')->with('fails', 'Agent can not Delete '); + } catch (\Exception $e) { + dd($e->errorInfo); + return redirect('agents')->with('fails', $error); } - } catch (Exception $e) { - return redirect('agents')->with('fails', 'Agent can not Delete if the team Excist'); - } } @@ -220,11 +227,10 @@ class AgentController extends Controller { } /** - * company + * Fetching comapny name to send mail * @return type */ - public function company() - { + public function company() { $company = Company::Where('id','=','1')->first(); if($company->company_name == null){ $company = "Support Center"; @@ -234,11 +240,9 @@ class AgentController extends Controller { return $company; } - - - public function agent_profile($id) { - $agent = User::where('id','=',$id)->first(); - return \View::make('themes.default1.admin.helpdesk.agent.agents.agent-profile',compact('agent')); - } + // public function agent_profile($id) { + // $agent = User::where('id','=',$id)->first(); + // return \View::make('themes.default1.admin.helpdesk.agent.agents.agent-profile',compact('agent')); + // } } diff --git a/app/Http/Controllers/Admin/helpdesk/BanlistController.php b/app/Http/Controllers/Admin/helpdesk/BanlistController.php index efcec36a5..226f45642 100644 --- a/app/Http/Controllers/Admin/helpdesk/BanlistController.php +++ b/app/Http/Controllers/Admin/helpdesk/BanlistController.php @@ -1,27 +1,39 @@ */ class BanlistController extends Controller { - /** +/** * Create a new controller instance. - * @return type void + * constructor to check + * 1. authentication + * 2. user roles + * 3. roles must be agent + * @return void */ public function __construct() { + // checking authentication $this->middleware('auth'); + // checking admin roles $this->middleware('roles'); } @@ -59,27 +71,28 @@ class BanlistController extends Controller { * @return type Response */ public function store(BanRequest $request, User $user) { - // try { + // dd($request); + try { //adding field to user whether it is banned or not $adban = $request->input('email'); $use = $user->where('email', $adban)->first(); if ($use != null) { - $use->ban = $request->input('ban_status'); + $use->ban = $request->input('ban'); $use->internal_note = $request->input('internal_note'); $use->save(); // $user->create($request->input())->save(); - return redirect()->back()->with('success', 'Email Banned sucessfully'); + return redirect('banlist')->with('success', 'Email Banned sucessfully'); } else { $user = new User; $user->email = $adban; - $user->ban = $request->input('ban_status'); + $user->ban = $request->input('ban'); $user->internal_note = $request->input('internal_note'); $user->save(); - return redirect()->back()->with('success', 'Email Banned sucessfully'); + return redirect('banlist')->with('success', 'Email Banned sucessfully'); } - // } catch (Exception $e) { - // return redirect('banlist')->with('fails', 'Email can not Ban'); - // } + } catch (Exception $e) { + return redirect('banlist')->with('fails', 'Email can not Ban'); + } } /** @@ -136,17 +149,15 @@ class BanlistController extends Controller { * @param type Banlist $ban * @return type Response */ - public function destroy($id, Banlist $ban) { - try { - $bans = $ban->whereId($id)->first(); - /* Success and Falure condition */ - if ($bans->delete() == true) { - return redirect('banlist')->with('success', 'Banned Email Deleted sucessfully'); - } else { - return redirect('banlist')->with('fails', 'Banned Email can not Delete'); - } - } catch (Exception $e) { - return redirect('banlist')->with('fails', 'Banned Email can not Delete'); - } - } + // public function destroy($id, Banlist $ban) { + // $bans = $ban->whereId($id)->first(); + // dd($bans); + // /* Success and Falure condition */ + // try{ + // $bans->delete(); + // return redirect('banlist')->with('success', 'Banned Email Deleted sucessfully'); + // } catch (Exception $e) { + // return redirect('banlist')->with('fails', 'Banned Email can not Delete'.'
  • '.$e->errorInfo[2].'
  • '); + // } + // } } diff --git a/app/Http/Controllers/Admin/helpdesk/DepartmentController.php b/app/Http/Controllers/Admin/helpdesk/DepartmentController.php index 783c43432..dae7fd057 100644 --- a/app/Http/Controllers/Admin/helpdesk/DepartmentController.php +++ b/app/Http/Controllers/Admin/helpdesk/DepartmentController.php @@ -12,9 +12,13 @@ use App\Model\helpdesk\Agent\Teams; use App\Model\helpdesk\Email\Emails; use App\Model\helpdesk\Email\Template; use App\Model\helpdesk\Manage\Sla_plan; +use App\Model\helpdesk\Settings\System; +use App\Model\helpdesk\Ticket\Tickets; +use App\Model\helpdesk\Manage\Help_topic; use App\User; // classes use DB; +use Exception; /** * DepartmentController @@ -81,9 +85,14 @@ class DepartmentController extends Controller { */ public function store(Department $department, DepartmentRequest $request) { try { - $department->fill($request->except('group_id'))->save(); + $department->fill($request->except('group_id','manager'))->save(); $requests = $request->input('group_id'); $id = $department->id; + if($request->manager) { + $department->manager = $request->input('manager'); + } else { + $department->manager = null; + } // foreach ($requests as $req) { // DB::insert('insert into group_assign_department(group_id, department_id) values (?,?)', [$req, $id]); // } @@ -99,16 +108,6 @@ class DepartmentController extends Controller { } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // - } - /** * Show the form for editing the specified resource. * @param type int $id @@ -146,6 +145,7 @@ class DepartmentController extends Controller { * @return type Response */ public function update($id, Group_assign_department $group_assign_department, Department $department, DepartmentUpdate $request) { + // dd($id); try { $table = $group_assign_department->where('department_id', $id); $table->delete(); @@ -154,7 +154,15 @@ class DepartmentController extends Controller { // DB::insert('insert into group_assign_department (group_id, department_id) values (?,?)', [$req, $id]); // } $departments = $department->whereId($id)->first(); - if ($departments->fill($request->except('group_access'))->save()) { + + if($request->manager) { + $departments->manager = $request->input('manager'); + } else { + $departments->manager = null; + } + $departments->save(); + + if ($departments->fill($request->except('group_access','manager'))->save()) { return redirect('departments')->with('success', 'Department Updated sucessfully'); } else { return redirect('departments')->with('fails', 'Department not Updated'); @@ -171,21 +179,64 @@ class DepartmentController extends Controller { * @param type Group_assign_department $group_assign_department * @return type Response */ - public function destroy($id, Department $department, Group_assign_department $group_assign_department) { - try { - /* Becouse of foreign key we delete group_assign_department first */ - $group_assign_department = $group_assign_department->where('department_id', $id); - $group_assign_department->delete(); - $departments = $department->whereId($id)->first(); - /* Check the function is Success or Fail */ - if ($departments->delete() == true) { - return redirect('departments')->with('success', 'Department Deleted sucessfully'); + public function destroy($id, Department $department, Group_assign_department $group_assign_department, System $system, Tickets $tickets) { + // try { + $system = $system->where('id','=','1')->first(); + if($system->department == $id) { + return redirect('departments')->with('fails', 'You cannot delete default department'); } else { - return redirect('departments')->with('fails', 'Department can not Delete'); + $tickets = DB::table('tickets')->where('dept_id','=',$id)->update(['dept_id' => $system->department]); + if($tickets > 0){ + if($tickets > 1){ + $text_tickets = "Tickets"; + } else { + $text_tickets = "Ticket"; + } + $ticket = '
  • '.$tickets.' '.$text_tickets.' have been moved to default department
  • '; + } else { + $ticket = ""; + } + $users = DB::table('users')->where('primary_dpt','=',$id)->update(['primary_dpt' => $system->department]); + if($users > 0){ + if($users > 1){ + $text_user = "Users"; + } else { + $text_user = "User"; + } + $user = '
  • '.$users.' '.$text_user.' have been moved to default department
  • '; + } else { + $user = ""; + } + $emails = DB::table('emails')->where('department','=',$id)->update(['department' => $system->department]); + if($emails > 0){ + if($emails > 1){ + $text_emails = "Emails"; + } else { + $text_emails = "Email"; + } + $email = '
  • '.$emails.' System '.$text_emails.' have been moved to default department
  • '; + } else { + $email = ""; + } + $helptopic = DB::table('help_topic')->where('department','=',$id)->update(['department' => null],['status' => '1']); + if($helptopic > 0){ + $helptopic = '
  • The associated helptopic has been deactivated
  • '; + } else { + $helptopic = ""; + } + $message = $ticket.$user.$email.$helptopic; + /* Becouse of foreign key we delete group_assign_department first */ + $group_assign_department = $group_assign_department->where('department_id', $id); + $group_assign_department->delete(); + $departments = $department->whereId($id)->first(); + /* Check the function is Success or Fail */ + if ($departments->delete() == true) { + return redirect('departments')->with('success', 'Department Deleted sucessfully'.$message); + } else { + return redirect('departments')->with('fails', 'Department can not Delete'); + } + } - } catch (Exception $e) { - return redirect('departments')->with('fails', 'Department can not Delete'); - } } } diff --git a/app/Http/Controllers/Admin/helpdesk/EmailsController.php b/app/Http/Controllers/Admin/helpdesk/EmailsController.php index 930184d23..1b6ff2035 100644 --- a/app/Http/Controllers/Admin/helpdesk/EmailsController.php +++ b/app/Http/Controllers/Admin/helpdesk/EmailsController.php @@ -12,6 +12,7 @@ use App\Model\helpdesk\Utility\MailboxProtocol; use App\Model\helpdesk\Ticket\Ticket_Priority; // classes use Crypt; +use Exception; /** * EmailsController diff --git a/app/Http/Controllers/Admin/helpdesk/FormController.php b/app/Http/Controllers/Admin/helpdesk/FormController.php index 17ff470b2..5f8640ed3 100644 --- a/app/Http/Controllers/Admin/helpdesk/FormController.php +++ b/app/Http/Controllers/Admin/helpdesk/FormController.php @@ -1,12 +1,29 @@ + */ class FormController extends Controller { private $fields; private $forms; @@ -91,8 +108,13 @@ class FormController extends Controller { - public function delete($id,Forms $forms, Fields $field) { + public function delete($id,Forms $forms, Fields $field, Help_topic $help_topic) { $fields = $field->where('forms_id',$id)->get(); + $help_topics = $help_topic->where('custom_form','=',$id)->get(); + foreach($help_topics as $help_topic) { + $help_topic->custom_form = null; + $help_topic->save(); + } foreach($fields as $field) { $field->delete(); } diff --git a/app/Http/Controllers/Admin/helpdesk/GroupController.php b/app/Http/Controllers/Admin/helpdesk/GroupController.php index 948de8c50..cec707098 100644 --- a/app/Http/Controllers/Admin/helpdesk/GroupController.php +++ b/app/Http/Controllers/Admin/helpdesk/GroupController.php @@ -8,9 +8,10 @@ use Illuminate\Http\Request; use App\Model\helpdesk\Agent\Department; use App\Model\helpdesk\Agent\Groups; use App\Model\helpdesk\Agent\Group_assign_department; +use App\User; // classes use Illuminate\Support\Facades\Input; - +use Exception; /** * GroupController * @@ -67,29 +68,14 @@ class GroupController extends Controller { public function store(Groups $group, GroupRequest $request) { try { /* Check Whether function success or not */ - if ($group->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('groups')->with('success', 'Groups Created Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Groups can not Create'); - } + $group->fill($request->input())->save(); + return redirect('groups')->with('success', 'Group Created Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Groups can not Create'); + return redirect('groups')->with('fails', 'Groups can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id, Groups $group, Request $request) { - // - } - /** * Show the form for editing the specified resource. * @param type int $id @@ -101,7 +87,7 @@ class GroupController extends Controller { $groups = $group->whereId($id)->first(); return view('themes.default1.admin.helpdesk.agent.groups.edit', compact('groups')); } catch (Exception $e) { - return view('404'); + return redirect('groups')->with('fails', 'Groups can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -113,7 +99,6 @@ class GroupController extends Controller { * @return type Response */ public function update($id, Groups $group, Request $request) { - try { $var = $group->whereId($id)->first(); //Updating Status $status = $request->Input('group_status'); @@ -158,17 +143,14 @@ class GroupController extends Controller { $adminNotes = $request->Input('admin_notes'); $var->admin_notes = $adminNotes; /* Check whether function success or not */ - if ($var->save() == true) { + try { + $var->save(); /* redirect to Index page with Success Message */ return redirect('groups')->with('success', 'Group Updated Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Group can not Update'); + return redirect('groups')->with('fails', 'Groups can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Groups can not Create'); - } } /** @@ -178,21 +160,22 @@ class GroupController extends Controller { * @param type Group_assign_department $group_assign_department * @return type Response */ - public function destroy($id, Groups $group, Group_assign_department $group_assign_department) { - try { + public function destroy($id, Groups $group, Group_assign_department $group_assign_department) { + $users = User::where('assign_group', '=', $id)->first(); + if($users){ + $user = '
  • There are agents assigned to this group. Please unassign them from this group to delete
  • '; + return redirect('groups')->with('fails', 'Group cannot Delete ' . $user); + } $group_assign_department->where('group_id', $id)->delete(); $groups = $group->whereId($id)->first(); /* Check whether function success or not */ - if ($groups->delete() == true) { + try { + $groups->delete(); /* redirect to Index page with Success Message */ return redirect('groups')->with('success', 'Group Deleted Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Group can not Delete'); + return redirect('groups')->with('fails', 'Groups cannot Create'.'
  • '.$e->errorInfo[2].'
  • '); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('groups')->with('fails', 'Groups can not Create'); - } } } diff --git a/app/Http/Controllers/Admin/helpdesk/HelptopicController.php b/app/Http/Controllers/Admin/helpdesk/HelptopicController.php index b8a7dd2e0..525e528a8 100644 --- a/app/Http/Controllers/Admin/helpdesk/HelptopicController.php +++ b/app/Http/Controllers/Admin/helpdesk/HelptopicController.php @@ -11,7 +11,11 @@ use App\Model\helpdesk\Form\Forms; use App\Model\helpdesk\Manage\Help_topic; use App\Model\helpdesk\Manage\Sla_plan; use App\Model\helpdesk\Ticket\Ticket_Priority; +use App\Model\helpdesk\Settings\Ticket; use App\User; +// classes +use DB; +use Exception; /** * HelptopicController @@ -88,29 +92,15 @@ class HelptopicController extends Controller { public function store(Help_topic $topic, HelptopicRequest $request) { try { /* Check whether function success or not */ - if ($topic->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('helptopic')->with('success', 'Helptopic Created Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Create'); - } + $topic->fill($request->input())->save(); + /* redirect to Index page with Success Message */ + return redirect('helptopic')->with('success', 'Helptopic Created Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Create'); + return redirect('helptopic')->with('fails', 'Helptopic can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // - } - /** * Show the form for editing the specified resource. * @param type $id @@ -132,7 +122,7 @@ class HelptopicController extends Controller { $priority = $priority->get(); return view('themes.default1.admin.helpdesk.manage.helptopic.edit', compact('priority', 'departments', 'topics', 'forms', 'agents', 'slas')); } catch (Exception $e) { - return view('404'); + return redirect('helptopic')->with('fails', '
  • '.$e->errorInfo[2].'
  • '); } } @@ -144,19 +134,29 @@ class HelptopicController extends Controller { * @return type Response */ public function update($id, Help_topic $topic, HelptopicUpdate $request) { + // dd($request); try { $topics = $topic->whereId($id)->first(); + if($request->custom_form){ + $custom_form = $request->custom_form; + } else { + $custom_form = null; + } + if($request->auto_assign){ + $auto_assign = $request->auto_assign; + } else { + $auto_assign = null; + } /* Check whether function success or not */ - if ($topics->fill($request->input())->save() == true) { + $topics->fill($request->except('custom_form','auto_assign'))->save(); + $topics->custom_form = $custom_form; + $topics->auto_assign = $auto_assign; + $topics->save(); /* redirect to Index page with Success Message */ return redirect('helptopic')->with('success', 'Helptopic Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Updated'); - } } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Create'); + return redirect('helptopic')->with('fails', 'Helptopic can not Update'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -166,20 +166,50 @@ class HelptopicController extends Controller { * @param type Help_topic $topic * @return type Response */ - public function destroy($id, Help_topic $topic) { - try { - $topics = $topic->whereId($id)->first(); - /* Check whether function success or not */ - if ($topics->delete() == true) { - /* redirect to Index page with Success Message */ - return redirect('helptopic')->with('success', 'Helptopic Deleted Successfully'); + public function destroy($id, Help_topic $topic, Ticket $ticket_setting) { + $ticket_settings = $ticket_setting->where('id','=','1')->first(); + if($ticket_settings->help_topic == $id) { + return redirect('departments')->with('fails', 'You cannot delete default department'); } else { - /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Delete'); + + $tickets = DB::table('tickets')->where('help_topic_id','=',$id)->update(['help_topic_id' => $ticket_settings->help_topic]); + + if($tickets > 0){ + if($tickets > 1){ + $text_tickets = "Tickets"; + } else { + $text_tickets = "Ticket"; + } + $ticket = '
  • '.$tickets.' '.$text_tickets.' have been moved to default Help Topic
  • '; + } else { + $ticket = ""; + } + + $emails = DB::table('emails')->where('help_topic','=',$id)->update(['help_topic' => $ticket_settings->help_topic]); + + if($emails > 0){ + if($emails > 1){ + $text_emails = "Emails"; + } else { + $text_emails = "Email"; + } + $email = '
  • '.$emails.' System '.$text_emails.' have been moved to default Help Topic
  • '; + } else { + $email = ""; + } + + $message = $ticket.$email; + + $topics = $topic->whereId($id)->first(); + /* Check whether function success or not */ + try{ + $topics->delete(); + /* redirect to Index page with Success Message */ + return redirect('helptopic')->with('success', 'Helptopic Deleted Successfully'.$message); + } catch (Exception $e) { + /* redirect to Index page with Fails Message */ + return redirect('helptopic')->with('fails', 'Helptopic can not Delete'.'
  • '.$e->errorInfo[2].'
  • '); + } } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('helptopic')->with('fails', 'Helptopic can not Create'); - } } } diff --git a/app/Http/Controllers/Admin/helpdesk/LanguageController.php b/app/Http/Controllers/Admin/helpdesk/LanguageController.php index 27b602574..90cc0134d 100644 --- a/app/Http/Controllers/Admin/helpdesk/LanguageController.php +++ b/app/Http/Controllers/Admin/helpdesk/LanguageController.php @@ -17,6 +17,7 @@ use App; use Lang; use Cache; use File; +use Exception; /** * SlaController diff --git a/app/Http/Controllers/Admin/helpdesk/ProfileController.php b/app/Http/Controllers/Admin/helpdesk/ProfileController.php index a5c1cf189..157d97209 100644 --- a/app/Http/Controllers/Admin/helpdesk/ProfileController.php +++ b/app/Http/Controllers/Admin/helpdesk/ProfileController.php @@ -10,6 +10,7 @@ use App\User; use Auth; use Hash; use Input; +use Exception; /** * ProfileController diff --git a/app/Http/Controllers/Admin/helpdesk/SettingsController.php b/app/Http/Controllers/Admin/helpdesk/SettingsController.php index e95524ac0..665d213fd 100644 --- a/app/Http/Controllers/Admin/helpdesk/SettingsController.php +++ b/app/Http/Controllers/Admin/helpdesk/SettingsController.php @@ -20,13 +20,13 @@ use App\Model\helpdesk\Settings\System; use App\Model\helpdesk\Settings\Ticket; use App\Model\helpdesk\Utility\Date_format; use App\Model\helpdesk\Utility\Date_time_format; -use App\Model\helpdesk\Utility\Logs; use App\Model\helpdesk\Ticket\Ticket_Priority; use App\Model\helpdesk\Utility\Timezones; use App\Model\helpdesk\Utility\Time_format; // classes use Illuminate\Http\Request; use Input; +use Exception; /** * SettingsController @@ -69,7 +69,7 @@ class SettingsController extends Controller { /* Direct to Company Settings Page */ return view('themes.default1.admin.helpdesk.settings.company', compact('companys')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -81,7 +81,7 @@ class SettingsController extends Controller { * @return Response */ public function postcompany($id, Company $company, CompanyRequest $request) { - try { + /* fetch the values of company request */ $companys = $company->whereId('1')->first(); if (Input::file('logo')) { @@ -96,17 +96,14 @@ class SettingsController extends Controller { $companys->use_logo = '0'; } /* Check whether function success or not */ - if ($companys->fill($request->except('logo'))->save() == true) { + try { + $companys->fill($request->except('logo'))->save(); /* redirect to Index page with Success Message */ return redirect('getcompany')->with('success', 'Company Updated Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getcompany')->with('fails', 'Company can not Updated'); + return redirect('getcompany')->with('fails', 'Company can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('getcompany')->with('fails', 'Company can not Updated'); - } } /** @@ -117,10 +114,9 @@ class SettingsController extends Controller { * @param type Date_format $date * @param type Date_time_format $date_time * @param type Time_format $time - * @param type Logs $log * @return type Response */ - public function getsystem(System $system, Department $department, Timezones $timezone, Date_format $date, Date_time_format $date_time, Time_format $time, Logs $log) { + public function getsystem(System $system, Department $department, Timezones $timezone, Date_format $date, Date_time_format $date_time, Time_format $time) { try { /* fetch the values of system from system table */ $systems = $system->whereId('1')->first(); @@ -129,9 +125,9 @@ class SettingsController extends Controller { /* Fetch the values from Timezones table */ $timezones = $timezone->get(); /* Direct to System Settings Page */ - return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time', 'log')); + return view('themes.default1.admin.helpdesk.settings.system', compact('systems', 'departments', 'timezones', 'time', 'date', 'date_time')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -144,20 +140,17 @@ class SettingsController extends Controller { */ public function postsystem($id, System $system, SystemRequest $request) { try { + // dd($request); /* fetch the values of system request */ $systems = $system->whereId('1')->first(); /* fill the values to coompany table */ /* Check whether function success or not */ - if ($systems->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('getsystem')->with('success', 'System Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('getsystem')->with('fails', 'System can not Updated'); - } + $systems->fill($request->input())->save(); + /* redirect to Index page with Success Message */ + return redirect('getsystem')->with('success', 'System Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getsystem')->with('fails', 'System can not Updated'); + return redirect('getsystem')->with('fails', 'System can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -180,7 +173,7 @@ class SettingsController extends Controller { /* Direct to Ticket Settings Page */ return view('themes.default1.admin.helpdesk.settings.ticket', compact('tickets', 'slas', 'topics', 'priority')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -206,16 +199,12 @@ class SettingsController extends Controller { $tickets->html = $request->input('html'); $tickets->client_update = $request->input('client_update'); /* Check whether function success or not */ - if ($tickets->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('getticket')->with('success', 'Ticket Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('getticket')->with('fails', 'Ticket can not Updated'); - } + $tickets->save(); + /* redirect to Index page with Success Message */ + return redirect('getticket')->with('success', 'Ticket Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getticket')->with('fails', 'Ticket can not Updated'); + return redirect('getticket')->with('fails', 'Ticket can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -237,7 +226,7 @@ class SettingsController extends Controller { /* Direct to Email Settings Page */ return view('themes.default1.admin.helpdesk.settings.email', compact('emails', 'templates', 'emails1')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -262,16 +251,12 @@ class SettingsController extends Controller { $emails->strip = $request->input('strip'); $emails->attachment = $request->input('attachment'); /* Check whether function success or not */ - if ($emails->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('getemail')->with('success', 'Email Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('getemail')->with('fails', 'Email can not Updated'); - } + $emails->save(); + /* redirect to Index page with Success Message */ + return redirect('getemail')->with('success', 'Email Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getemail')->with('fails', 'Email can not Updated'); + return redirect('getemail')->with('fails', 'Email can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -334,7 +319,7 @@ class SettingsController extends Controller { /* Direct to Responder Settings Page */ return view('themes.default1.admin.helpdesk.settings.responder', compact('responders')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -356,16 +341,12 @@ class SettingsController extends Controller { $responders->overlimit = $request->input('overlimit'); /* fill the values to coompany table */ /* Check whether function success or not */ - if ($responders->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('getresponder')->with('success', 'Responder Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('getresponder')->with('fails', 'Responder can not Updated'); - } + $responders->save(); + /* redirect to Index page with Success Message */ + return redirect('getresponder')->with('success', 'Responder Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getresponder')->with('fails', 'Responder can not Updated'); + return redirect('getresponder')->with('fails', 'Responder can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -381,7 +362,7 @@ class SettingsController extends Controller { /* Direct to Alert Settings Page */ return view('themes.default1.admin.helpdesk.settings.alert', compact('alerts')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -442,16 +423,12 @@ class SettingsController extends Controller { } /* fill the values to coompany table */ /* Check whether function success or not */ - if ($alerts->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('getalert')->with('success', 'Alert Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('getalert')->with('fails', 'Alert can not Updated'); - } + $alerts->save(); + /* redirect to Index page with Success Message */ + return redirect('getalert')->with('success', 'Alert Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('getalert')->with('fails', 'Alert can not Updated'); + return redirect('getalert')->with('fails', 'Alert can not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } diff --git a/app/Http/Controllers/Admin/helpdesk/SlaController.php b/app/Http/Controllers/Admin/helpdesk/SlaController.php index 1b2f7914c..003a2d66b 100644 --- a/app/Http/Controllers/Admin/helpdesk/SlaController.php +++ b/app/Http/Controllers/Admin/helpdesk/SlaController.php @@ -1,11 +1,19 @@ back()->with('fails',$e->errorInfo[2]); } } @@ -50,7 +58,7 @@ class SlaController extends Controller { /* Direct to Create Page */ return view('themes.default1.admin.helpdesk.manage.sla.create'); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -64,29 +72,15 @@ class SlaController extends Controller { try { /* Fill the request values to Sla_plan Table */ /* Check whether function success or not */ - if ($sla->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('sla')->with('success', 'SLA Plan Created Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Create'); - } + $sla->fill($request->input())->save(); + /* redirect to Index page with Success Message */ + return redirect('sla')->with('success', 'SLA Plan Created Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Create'); + return redirect('sla')->with('fails', 'SLA Plan can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // - } - /** * Show the form for editing the specified resource. * @param type int $id @@ -100,7 +94,7 @@ class SlaController extends Controller { $slas->get(); return view('themes.default1.admin.helpdesk.manage.sla.edit', compact('slas')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -121,16 +115,12 @@ class SlaController extends Controller { /* Update ticket_overdue checkox field */ $slas->ticket_overdue = $request->input('ticket_overdue'); /* Check whether function success or not */ - if ($slas->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('sla')->with('success', 'SLA Plan Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Update'); - } + $slas->save(); + /* redirect to Index page with Success Message */ + return redirect('sla')->with('success', 'SLA Plan Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Update'); + return redirect('sla')->with('fails', 'SLA Plan can not Update'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -141,20 +131,55 @@ class SlaController extends Controller { * @return type Response */ public function destroy($id, Sla_plan $sla) { - try { + $default_sla = Ticket::where('id','=','1')->first(); + if($default_sla->sla == $id) { + return redirect('departments')->with('fails', 'You cannot delete default department'); + } else { + $tickets = DB::table('tickets')->where('sla','=',$id)->update(['sla' => $default_sla->sla]); + if($tickets > 0) { + if($tickets > 1) { + $text_tickets = "Tickets"; + } else { + $text_tickets = "Ticket"; + } + $ticket = '
  • '.$tickets.' '.$text_tickets.' have been moved to default SLA
  • '; + } else { + $ticket = ""; + } + $dept = DB::table('department')->where('sla','=',$id)->update(['sla' => $default_sla->sla]); + if($dept > 0){ + if($dept > 1){ + $text_dept = "Emails"; + } else { + $text_dept = "Email"; + } + $dept = '
  • Associated department have been moved to default SLA
  • '; + } else { + $dept = ""; + } + $topic = DB::table('help_topic')->where('sla_plan','=',$id)->update(['sla_plan' => $default_sla->sla]); + if($topic > 0){ + if($topic > 1){ + $text_topic = "Emails"; + } else { + $text_topic = "Email"; + } + $topic = '
  • Associated Help Topic have been moved to default SLA
  • '; + } else { + $topic = ""; + } + $message = $ticket.$dept.$topic; /* Delete a perticular field from the database by delete() using Id */ $slas = $sla->whereId($id)->first(); /* Check whether function success or not */ - if ($slas->delete() == true) { + try{ + $slas->delete(); /* redirect to Index page with Success Message */ - return redirect('sla')->with('success', 'SLA Plan Deleted Successfully'); - } else { + return redirect('sla')->with('success', 'SLA Plan Deleted Successfully'.$message); + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Delete'); + return redirect('sla')->with('fails', 'SLA Plan can not Delete'.'
  • '.$e->errorInfo[2].'
  • '); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('sla')->with('fails', 'SLA Plan can not Delete'); } } diff --git a/app/Http/Controllers/Admin/helpdesk/TeamController.php b/app/Http/Controllers/Admin/helpdesk/TeamController.php index 03af4e8e0..91057d142 100644 --- a/app/Http/Controllers/Admin/helpdesk/TeamController.php +++ b/app/Http/Controllers/Admin/helpdesk/TeamController.php @@ -1,14 +1,21 @@ get(); return view('themes.default1.admin.helpdesk.agent.teams.index', compact('assign_team_agent', 'teams')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -55,7 +62,7 @@ class TeamController extends Controller { $user = $user->get(); return view('themes.default1.admin.helpdesk.agent.teams.create', compact('user')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -66,31 +73,24 @@ class TeamController extends Controller { * @return type Response */ public function store(Teams $team, TeamRequest $request) { + + if($request->team_lead){ + $team_lead = $request->team_lead; + } else { + $team_lead = null; + } + $team->team_lead = $team_lead; try { /* Check whether function success or not */ - if ($team->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('teams')->with('success', 'Teams Created Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Create'); - } + $team->fill($request->except('team_lead'))->save(); + /* redirect to Index page with Success Message */ + return redirect('teams')->with('success', 'Teams Created Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Create'); + return redirect('teams')->with('fails', 'Teams can not Create'.'
  • '.$e->errorInfo[2].'
  • '); } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // - } - /** * Show the form for editing the specified resource. * @param type $id @@ -107,7 +107,7 @@ class TeamController extends Controller { $agent_id = $agent_team->lists('agent_id', 'agent_id'); return view('themes.default1.admin.helpdesk.agent.teams.edit', compact('agent_id', 'user', 'teams', 'allagents')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -119,24 +119,29 @@ class TeamController extends Controller { * @return type Response */ public function update($id, Teams $team, TeamUpdate $request) { - try { + $teams = $team->whereId($id)->first(); //updating check box + if($request->team_lead){ + $team_lead = $request->team_lead; + } else { + $team_lead = null; + } + $teams->team_lead = $team_lead; + $teams->save(); + $alert = $request->input('assign_alert'); $teams->assign_alert = $alert; $teams->save(); //saving check box //updating whole field /* Check whether function success or not */ - if ($teams->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('teams')->with('success', 'Teams Updated Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Update'); - } + try { + $teams->fill($request->except('team_lead'))->save(); + /* redirect to Index page with Success Message */ + return redirect('teams')->with('success', 'Teams Updated Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Update'); + return redirect('teams')->with('fails', 'Teams can not Update'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -151,17 +156,14 @@ class TeamController extends Controller { try { $assign_team_agent->where('team_id', $id)->delete(); $teams = $team->whereId($id)->first(); + $tickets = DB::table('tickets')->where('team_id','=',$id)->update(['team_id' => null]); /* Check whether function success or not */ - if ($teams->delete() == true) { - /* redirect to Index page with Success Message */ - return redirect('teams')->with('success', 'Teams Deleted Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Delete'); - } + $teams->delete(); + /* redirect to Index page with Success Message */ + return redirect('teams')->with('success', 'Teams Deleted Successfully'); } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('teams')->with('fails', 'Teams can not Delete'); + return redirect('teams')->with('fails', 'Teams can not Delete'.'
  • '.$e->errorInfo[2].'
  • '); } } } diff --git a/app/Http/Controllers/Admin/helpdesk/TemplateController.php b/app/Http/Controllers/Admin/helpdesk/TemplateController.php index dcd3fc783..8bceb153e 100644 --- a/app/Http/Controllers/Admin/helpdesk/TemplateController.php +++ b/app/Http/Controllers/Admin/helpdesk/TemplateController.php @@ -12,6 +12,7 @@ use App\Model\helpdesk\Utility\Languages; // classes use Illuminate\Http\Request; use Mail; +use Exception; /** * TemplateController diff --git a/app/Http/Controllers/Admin/helpdesk/ThreadController.php b/app/Http/Controllers/Admin/helpdesk/ThreadController.php index 38802090f..184658215 100644 --- a/app/Http/Controllers/Admin/helpdesk/ThreadController.php +++ b/app/Http/Controllers/Admin/helpdesk/ThreadController.php @@ -1,10 +1,14 @@ */ @@ -23,108 +31,122 @@ class CannedController extends Controller { * 1. authentication * 2. user roles * 3. roles must be agent - * * @return void */ public function __construct() { + // checking authentication $this->middleware('auth'); + // checking if role is agent $this->middleware('role.agent'); - // $this->middleware('roles'); } /** - * Display a listing of the resource. - * @param type User $user - * @return type Response + * Display a listing of the Canned Responses. + * @return type View */ public function index() { return view('themes.default1.agent.helpdesk.canned.index'); } /** - * Show the form for creating a new resource. - * @return type Response + * Show the form for creating a new Canned Response + * @return type View */ public function create() { return view('themes.default1.agent.helpdesk.canned.create'); } /** - * Store a newly created resource in storage. - * @param type User $user - * @param type Sys_userRequest $request - * @return type Response + * Store a newly created Canned Response. + * @param type CannedRequest $request + * @param type Canned $canned + * @return type Redirect */ public function store(CannedRequest $request, Canned $canned) { + // fetching all the requested inputs $canned->user_id = \Auth::user()->id; $canned->title = $request->input('title'); $canned->message = $request->input('message'); - $canned->save(); - return redirect()->route('canned.list')->with('success','Added Successfully'); + try { + // saving inputs + $canned->save(); + return redirect()->route('canned.list')->with('success','Added Successfully'); + } catch (Exception $e) { + return redirect()->route('canned.list')->with('fails',$e->errorInfo[2]); + } } /** - * Show the form for editing the specified resource. - * @param type int $id - * @param type User $user - * @return type Response + * Show the form for editing the Canned Response. + * @param type $id + * @param type Canned $canned + * @return type View */ public function edit($id, Canned $canned) { + // fetching requested canned response $canned = $canned->where('user_id', '=', \Auth::user()->id)->where('id','=',$id)->first(); return view('themes.default1.agent.helpdesk.canned.edit',compact('canned')); } /** - * Update the specified resource in storage. - * @param type int $id - * @param type User $user - * @param type Sys_userUpdate $request - * @return type Response + * Update the Canned Response in database. + * @param type $id + * @param type CannedUpdateRequest $request + * @param type Canned $canned + * @return type Redirect */ public function update($id, CannedUpdateRequest $request, Canned $canned) { - + /* select the field where id = $id(request Id) */ $canned = $canned->where('id','=',$id)->where('user_id', '=', \Auth::user()->id)->first(); + // fetching all the requested inputs $canned->user_id = \Auth::user()->id; $canned->title = $request->input('title'); $canned->message = $request->input('message'); - $canned->save(); - - return redirect()->route('canned.list')->with('success','Updated Successfully'); + try { + // saving inputs + $canned->save(); + return redirect()->route('canned.list')->with('success','Updated Successfully'); + } catch (Exception $e) { + return redirect()->route('canned.list')->with('fails',$e->errorInfo[2]); + } } /** - * Remove the specified resource from storage. - * @param type int $id - * @param type User $user - * @return type Response + * Delete the Canned Response from storage. + * @param type $id + * @param type Canned $canned + * @return type Redirect */ public function destroy($id, Canned $canned) { /* select the field where id = $id(request Id) */ - $canned = $canned->whereId($id)->first(); - /* delete the selected field */ - /* Check whether function success or not */ - if ($canned->delete() == true) { - /* redirect to Index page with Success Message */ - return redirect()->route('canned.list')->with('success', 'User Deleted Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect()->route('canned.list')->with('fails', 'User can not Delete'); - } - return view('themes.default1.agent.helpdesk.canned.destroy'); + $canned = $canned->whereId($id)->first(); + /* delete the selected field */ + /* Check whether function success or not */ + try { + $canned->delete(); + /* redirect to Index page with Success Message */ + return redirect()->route('canned.list')->with('success', 'User Deleted Successfully'); + } catch (Exception $e) { + /* redirect to Index page with Fails Message */ + return redirect()->route('canned.list')->with('fails', $e->errorInfo[2]); + } } /** - * get canned + * Fetch Canned Response in the ticket detail page. * @param type $id * @return type json */ public function get_canned($id) { + // checking for the canned response with requested value if($id != "zzz") { + // fetching canned response $canned = Canned::where('id','=',$id)->where('user_id','=',\Auth::user()->id)->first(); $msg = $canned->message; } else { $msg = ""; } + // returning the canned response in JSON format return \Response::json($msg); } diff --git a/app/Http/Controllers/Agent/helpdesk/DashboardController.php b/app/Http/Controllers/Agent/helpdesk/DashboardController.php index a248eef30..65b707a10 100644 --- a/app/Http/Controllers/Agent/helpdesk/DashboardController.php +++ b/app/Http/Controllers/Agent/helpdesk/DashboardController.php @@ -1,19 +1,24 @@ @@ -29,61 +34,76 @@ class DashboardController extends Controller { * @return void */ public function __construct() { + // checking for authentication $this->middleware('auth'); + // checking if the role is agent $this->middleware('role.agent'); } /** - * Show the form for creating a new resource. - * @return type Response + * Get the dashboard page + * @return type view */ public function index() { - try { - if(Auth::user()->role == "user"){ - return \Redirect::route('home'); - } - return View::make('themes.default1.agent.helpdesk.dashboard.dashboard'); - } catch (Exception $e) { - return view('404'); - } + // if(Auth::user()->role == "user"){ + // return \Redirect::route('home'); + // } + try { + return View::make('themes.default1.agent.helpdesk.dashboard.dashboard'); + } catch (Exception $e) { + return View::make('themes.default1.agent.helpdesk.dashboard.dashboard'); + } } /** - * ChartData - * @return type + * Fetching dashboard graph data to implement graph + * @return type Json */ public function ChartData() { - $date2 = strtotime(Date('Y-m-d')); - $date3 = Date('Y-m-d'); - $format = 'Y-m-d'; - $date1 = strtotime(Date($format,strtotime('-1 month'. $date3))); - - $return = ""; - $last = ""; - for ( $i = $date1; $i <= $date2; $i = $i + 86400 ) { - $thisDate = date( 'Y-m-d', $i ); - - $created = \DB::table('tickets')->select('created_at')->where('created_at','LIKE','%'.$thisDate.'%')->count(); - $closed = \DB::table('tickets')->select('closed_at')->where('closed_at','LIKE','%'.$thisDate.'%')->count(); - $reopened = \DB::table('tickets')->select('reopened_at')->where('reopened_at','LIKE','%'.$thisDate.'%')->count(); - - $value = ['date' => $thisDate, 'open' => $created, 'closed' => $closed, 'reopened' => $reopened]; - $array = array_map('htmlentities',$value); - $json = html_entity_decode(json_encode($array)); - $return .= $json.','; - } - $last = rtrim($return,','); - return '['.$last.']'; - + // $date11 = strtotime(\Input::get('start_date')); + // $date12 = strtotime(\Input::get('end_date')); + // if($date11 && $date12){ + // $date2 = $date12; + // $date1 = $date11; + // } else { + // generating current date + $date2 = strtotime(Date('Y-m-d')); + $date3 = Date('Y-m-d'); + $format = 'Y-m-d'; + // generating a date range of 1 month + $date1 = strtotime(Date($format,strtotime('-1 month'. $date3))); + // } + + $return = ""; + $last = ""; + // fetching dashboard data for each day on a 1 month fixed range + // this range can also be fetched on a requested rannge of date + for ( $i = $date1; $i <= $date2; $i = $i + 86400 ) { + $thisDate = date( 'Y-m-d', $i ); + // created tickets + $created = \DB::table('tickets')->select('created_at')->where('created_at','LIKE','%'.$thisDate.'%')->count(); + // closed tickets + $closed = \DB::table('tickets')->select('closed_at')->where('closed_at','LIKE','%'.$thisDate.'%')->count(); + // reopened tickets + $reopened = \DB::table('tickets')->select('reopened_at')->where('reopened_at','LIKE','%'.$thisDate.'%')->count(); + // storing in array format + $value = ['date' => $thisDate, 'open' => $created, 'closed' => $closed, 'reopened' => $reopened]; + $array = array_map('htmlentities',$value); + // encoding the values in jsom format + $json = html_entity_decode(json_encode($array)); + $return .= $json.','; + } + // combining all the values in a single variable and returning that variable in Json. + $last = rtrim($return,','); + return '['.$last.']'; // $ticketlist = DB::table('tickets') // ->select(DB::raw('MONTH(updated_at) as month'),DB::raw('SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) as closed'),DB::raw('SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) as reopened'),DB::raw('SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) as open'),DB::raw('SUM(CASE WHEN status = 5 THEN 1 ELSE 0 END) as deleted'), // DB::raw('count(*) as totaltickets')) // ->groupBy('month') // ->orderBy('month', 'asc') // ->get(); - // return $ticketlist; } diff --git a/app/Http/Controllers/Agent/helpdesk/MailController.php b/app/Http/Controllers/Agent/helpdesk/MailController.php index 831577d04..435a3f40e 100644 --- a/app/Http/Controllers/Agent/helpdesk/MailController.php +++ b/app/Http/Controllers/Agent/helpdesk/MailController.php @@ -2,6 +2,7 @@ // controllers use App\Http\Controllers\Controller; use App\Http\Controllers\Agent\helpdesk\TicketController; + // models use App\User; use App\Model\helpdesk\Email\Emails; @@ -9,6 +10,12 @@ use App\Model\helpdesk\Settings\Email; use App\Model\helpdesk\Ticket\Ticket_attachments; use App\Model\helpdesk\Ticket\Ticket_Thread; use App\Model\helpdesk\Settings\System; +use App\Model\helpdesk\Manage\Help_topic; +use App\Model\helpdesk\Utility\MailboxProtocol; +use App\Model\helpdesk\Ticket\Ticket_source; +use App\Model\helpdesk\Ticket\Ticket_Priority; +use App\Model\helpdesk\Ticket\Tickets; + // classes use PhpImap\Mailbox as ImapMailbox; use PhpImap\IncomingMail; @@ -20,6 +27,7 @@ use Crypt; use Schedule; use File; use Artisan; +use Exception; /** * MailController @@ -45,53 +53,55 @@ class MailController extends Controller { */ public function readmails(Emails $emails, Email $settings_email, System $system) { - $path_url = $system->first()->url; + // $path_url = $system->first()->url; if($settings_email->first()->email_fetching == 1) { if($settings_email->first()->all_emails == 1) { - $helptopic = $this->TicketController->default_helptopic(); - $sla = $this->TicketController->default_sla(); + // $helptopic = $this->TicketController->default_helptopic(); + // $sla = $this->TicketController->default_sla(); $email = $emails->get(); foreach($email as $e_mail) { + $helptopic = $e_mail->help_topic; + $get_helptopic = Help_topic::where('id', '=', $helptopic)->first(); + $sla = $get_helptopic->sla_plan; $dept = $e_mail->department; $host = $e_mail->fetching_host; $port = $e_mail->fetching_port; $protocol = $e_mail->mailbox_protocol; + $get_mailboxprotocol = MailboxProtocol::where('id','=',$protocol)->first(); + $protocol = $get_mailboxprotocol->value; $imap_config = '{'.$host.':'.$port.$protocol.'}INBOX'; - $password = Crypt::decrypt($e_mail->password); - $mailbox = new ImapMailbox($imap_config, $e_mail->user_name, $password, __DIR__); + $mailbox = new ImapMailbox($imap_config, $e_mail->email_address, $password, __DIR__); $mails = array(); $mailsIds = $mailbox->searchMailBox('SINCE '. date('d-M-Y', strtotime("-1 day"))); if(!$mailsIds) { die('Mailbox is empty'); } - // dd($mailsIds); foreach($mailsIds as $mailId) { $overview = $mailbox->get_overview($mailId); $var = $overview[0]->seen ? 'read' : 'unread'; if ($var == 'unread') { $mail = $mailbox->getMail($mailId); - if($settings_email->email_collaborator == 1) { + if($settings_email->first()->email_collaborator == 1) { $collaborator = $mail->cc; } else { $collaborator = null; } $body = $mail->textHtml; - // dd($mailId); if($body == null) { $body = $mailbox->backup_getmail($mailId); $body = str_replace('\r\n', '
    ', $body); // var_dump($body); } - // dd($body); $date = $mail->date; $datetime = $overview[0]->date; $date_time = explode(" ", $datetime); $date = $date_time[1] . "-" . $date_time[2] . "-" . $date_time[3] . " " . $date_time[4]; $date = date('Y-m-d H:i:s', strtotime($date)); + // dd($date); if(isset($mail->subject)){ $subject = $mail->subject; @@ -99,27 +109,36 @@ class MailController extends Controller { $subject = "No Subject"; } + // dd($subject); $fromname = $mail->fromName; $fromaddress = $mail->fromAddress; - $source = "2"; + $ticket_source = Ticket_source::where('name','=','email')->first(); + $source = $ticket_source->id; $phone = ""; - $priority = '1'; - $assign = ""; + $priority = $get_helptopic->priority; + // Ticket_Priority::where('') + + $assign = $get_helptopic->auto_assign; $form_data = null; - if ($this->TicketController->create_user($fromaddress, $fromname, $subject, $body, $phone, $helptopic, $sla, $priority, $source, $collaborator, $dept, $assign, $form_data) == true) { - $thread_id = Ticket_Thread::whereRaw('id = (select max(`id`) from ticket_thread)')->first(); - $thread_id = $thread_id->id; + $result = $this->TicketController->create_user($fromaddress, $fromname, $subject, $body, $phone, $helptopic, $sla, $priority, $source, $collaborator, $dept, $assign, $form_data); + // dd($result); + if ($result[1] == true) { + $ticket_table = Tickets::where('ticket_number', '=' , $result[0])->first(); + $thread_id = Ticket_Thread::where('ticket_id','=',$ticket_table->id)->max('id'); + // $thread_id = Ticket_Thread::whereRaw('id = (select max(`id`) from ticket_thread)')->first(); + $thread_id = $thread_id; foreach($mail->getAttachments() as $attachment) { - // dd($attachment); $support = "support"; // echo $_SERVER['DOCUMENT_ROOT']; $dir_img_paths = __DIR__; $dir_img_path = explode('/code', $dir_img_paths); - $filepath = explode('../../../../../../public',$attachment->filePath); + // dd($attachment->filePath); + $filepath = explode('../../../../../public',$attachment->filePath); + // var_dump($attachment->filePath); // dd($filepath); - // $path = $dir_img_path[0]."/public/".$filepath[1]; - $path = public_path().'/'.$filepath[1]; + // $path = $dir_img_path[0]."/code/public/".$filepath[1]; + $path = public_path().$filepath[1]; // dd($path); $filesize = filesize($path); $file_data = file_get_contents($path); diff --git a/app/Http/Controllers/Agent/helpdesk/NotificationController.php b/app/Http/Controllers/Agent/helpdesk/NotificationController.php index d7bceb093..70c1bbadf 100644 --- a/app/Http/Controllers/Agent/helpdesk/NotificationController.php +++ b/app/Http/Controllers/Agent/helpdesk/NotificationController.php @@ -2,6 +2,7 @@ // controllers use App\Http\Controllers\Controller; + // Model use App\User; use App\Model\helpdesk\Settings\Company; @@ -10,8 +11,12 @@ use App\Model\helpdesk\Agent\Department; use App\Model\helpdesk\Utility\Log_notification; use App\Model\helpdesk\settings\Email; +// classes +use Exception; + /** - * UserController + * NotificationController + * This controller is used to send daily notifications * * @package Controllers * @subpackage Controller @@ -21,20 +26,27 @@ class NotificationController extends Controller { /** * This function is for sending daily report/notification about the system - * @return mail **/ public function send_notification() { + //fetching email settings $email = Email::where('id','=','1')->first(); + // checking if the daily notification is enabled or not if($email->notification_cron == 1){ + // checking if current date is equal to the last entered daily notification log $notification = Log_notification::where('log','=','NOT-1')->orderBy('id','DESC')->first(); $date = explode(" " , $notification->created_at); if(Date('Y-m-d') == $date[0]){ } else { + // creating a daily notification log Log_notification::create(['log'=>'NOT-1']); $company = $this->company(); + // Send notification details to admin $this->send_notification_to_admin($company); + // Send notification details to team lead $this->send_notification_to_team_lead($company); + // Send notification details to manager of a department $this->send_notification_to_manager($company); + // Send notification details to all the agents $this->send_notification_to_agent($company); } } @@ -49,6 +61,7 @@ class NotificationController extends Controller { // get all admin users $users = User::where('role','=','admin')->get(); foreach ($users as $user) { + // Send notification details to admin $email = $user->email; $user_name = $user->first_name . " " . $user->last_name; \Mail::send('emails.notifications.admin', ['company' => $company, 'name'=>$user_name], function ($message)use ($email, $user_name, $company) { @@ -62,12 +75,14 @@ class NotificationController extends Controller { * @return mail **/ public function send_notification_to_manager($company) { + // get all department managers $depts = Department::all(); foreach ($depts as $dept) { if(isset($dept->manager)) { $dept_name = $dept->name; $users = User::where('id','=',$dept->manager)->get(); foreach ($users as $user) { + // Send notification details to manager of a department $email = $user->email; $user_name = $user->first_name . " " . $user->last_name; \Mail::send('emails.notifications.manager', ['company' => $company, 'name'=>$user_name,'dept_id' => $dept->id, 'dept_name' => $dept->name], function ($message)use ($email, $user_name, $company, $dept_name) { @@ -83,12 +98,14 @@ class NotificationController extends Controller { * @return mail **/ public function send_notification_to_team_lead($company) { + // get all Team leads $teams = Teams::all(); foreach ($teams as $team) { if(isset($team->team_lead)) { $team_name = $team->name; $users = User::where('id','=',$team->team_lead)->get(); foreach ($users as $user) { + // Send notification details to team lead $email = $user->email; $user_name = $user->first_name . " " . $user->last_name; \Mail::send('emails.notifications.lead', ['company' => $company, 'name'=>$user_name,'team_id' => $team->id], function ($message)use ($email, $user_name, $company, $team_name) { @@ -107,6 +124,7 @@ class NotificationController extends Controller { // get all agents users $users = User::where('role','=','agent')->get(); foreach ($users as $user) { + // Send notification details to all the agents $email = $user->email; $user_name = $user->first_name . " " . $user->last_name; \Mail::send('emails.notifications.agent', ['company' => $company, 'name'=>$user_name, 'user_id' => 1], function ($message)use ($email, $user_name, $company) { @@ -116,12 +134,13 @@ class NotificationController extends Controller { } /** - * company - * @return type + * Fetching company name + * @return type variable */ - public function company() - { + public function company() { + // fetching comapny model $company = Company::Where('id','=','1')->first(); + // fetching company name if($company->company_name == null){ $company = "Support Center"; }else{ @@ -130,12 +149,13 @@ class NotificationController extends Controller { return $company; } - public function test(){ - $email = "sujit.prasad@ladybirdweb.com"; - $user_name = "sujit prasad"; - \Mail::send('emails.notifications.test', ['user_id' => 1], function ($message) use($email, $user_name) { - $message->to($email, $user_name)->subject('testing reporting'); - }); - } + // // testing + // public function test(){ + // $email = "sujit.prasad@ladybirdweb.com"; + // $user_name = "sujit prasad"; + // \Mail::send('emails.notifications.test', ['user_id' => 1], function ($message) use($email, $user_name) { + // $message->to($email, $user_name)->subject('testing reporting'); + // }); + // } } \ No newline at end of file diff --git a/app/Http/Controllers/Agent/helpdesk/OrganizationController.php b/app/Http/Controllers/Agent/helpdesk/OrganizationController.php index 9a12f5dbc..e27aff9c2 100644 --- a/app/Http/Controllers/Agent/helpdesk/OrganizationController.php +++ b/app/Http/Controllers/Agent/helpdesk/OrganizationController.php @@ -1,18 +1,25 @@ middleware('auth'); + // checking if the role is agent $this->middleware('role.agent'); - // $this->middleware('roles'); } /** @@ -54,47 +61,54 @@ class OrganizationController extends Controller { * @return datatable */ public function org_list() { + // chumper datable package call to display Advance datatable return \Datatable::collection(Organization::all()) + /* searchable name */ ->searchColumns('name') + /* order by name and website */ ->orderColumns('name', 'website') + /* column name */ ->addColumn('name', function ($model) { return $model->name; }) + /* column website */ ->addColumn('website', function ($model) { $website = $model->website; return $website; }) + /* column phone number */ ->addColumn('phone', function ($model) { $phone = $model->phone; return $phone; }) + /* column action buttons */ ->addColumn('Actions', function ($model) { - //return 'id . ' class="btn btn-danger btn-flat" onclick="myFunction()">Delete id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; - //return '
    id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; + // displaying action buttons + // modal popup to delete data return ' ' . \Lang::get('lang.edit') . ' ' . \Lang::get('lang.view') . ' '; + + '; }) ->make(); } /** - * Show the form for creating a new resource. + * Show the form for creating a new organization. * @return type Response */ public function create() { @@ -106,10 +120,10 @@ class OrganizationController extends Controller { } /** - * Store a newly created resource in storage. + * Store a newly created organization in storage. * @param type Organization $org * @param type OrganizationRequest $request - * @return type Response + * @return type Redirect */ public function store(Organization $org, OrganizationRequest $request) { try { @@ -129,11 +143,10 @@ class OrganizationController extends Controller { } /** - * Display the specified resource. - * + * Display the specified organization. * @param type $id * @param type Organization $org - * @return type Response + * @return type view */ public function show($id, Organization $org) { try { @@ -142,16 +155,15 @@ class OrganizationController extends Controller { /* To view page */ return view('themes.default1.agent.helpdesk.organization.show', compact('orgs')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails', $e->errorInfo[2]); } } /** - * Show the form for editing the specified resource. - * + * Show the form for editing the specified organization. * @param type $id * @param type Organization $org - * @return type Response + * @return type view */ public function edit($id, Organization $org) { try { @@ -165,63 +177,69 @@ class OrganizationController extends Controller { } /** - * Update the specified resource in storage. - * + * Update the specified organization in storage. * @param type $id * @param type Organization $org * @param type OrganizationUpdate $request - * @return type Response + * @return type Redirect */ public function update($id, Organization $org, OrganizationUpdate $request) { - try { + /* select the field by id */ $orgs = $org->whereId($id)->first(); /* update the organization table */ /* Check whether function success or not */ - if ($orgs->fill($request->input())->save() == true) { - /* redirect to Index page with Success Message */ - return redirect('organizations')->with('success', 'Organization Updated Successfully'); - } else { + try { + if ($orgs->fill($request->input())->save() == true) { + /* redirect to Index page with Success Message */ + return redirect('organizations')->with('success', 'Organization Updated Successfully'); + } else { + /* redirect to Index page with Fails Message */ + return redirect('organizations')->with('fails', 'Organization can not Update'); + } + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('organizations')->with('fails', 'Organization can not Update'); + return redirect('organizations')->with('fails', $e->errorInfo[2]); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('organizations')->with('fails', 'Organization can not Update'); - } } /** - * Remove the specified resource from storage. + * Delete a specified organization from storage. * @param type int $id - * @return type Response + * @return type Redirect */ - public function destroy($id, Organization $org) { - try { - // User_org + public function destroy($id, Organization $org, User_org $user_org) { + /* select the field by id */ $orgs = $org->whereId($id)->first(); + $user_orgs = $user_org->where('org_id','=',$id)->get(); + foreach ($user_orgs as $user_org) { + $user_org->delete(); + } /* Delete the field selected from the table */ /* Check whether function success or not */ - if ($orgs->delete() == true) { + try { + $orgs->delete(); /* redirect to Index page with Success Message */ return redirect('organizations')->with('success', 'Organization Deleted Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('organizations')->with('fails', 'Organization can not Delete'); + return redirect('organizations')->with('fails', $e->errorInfo[2]); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('organizations')->with('fails', 'Organization can not Delete'); - } } + /** + * Soring an organization head + * @param type $id + * @return type boolean + */ public function Head_Org($id){ - + // get the user to make organization head $head_user = \Input::get('user'); - + // get an instance of the selected organization $org_head = Organization::where('id','=',$id)->first(); $org_head->head = $head_user; + // save the user to organization head $org_head->save(); return 1; } diff --git a/app/Http/Controllers/Agent/helpdesk/TicketController.php b/app/Http/Controllers/Agent/helpdesk/TicketController.php index 9d0c1edea..98a584075 100644 --- a/app/Http/Controllers/Agent/helpdesk/TicketController.php +++ b/app/Http/Controllers/Agent/helpdesk/TicketController.php @@ -3,10 +3,12 @@ use App\Http\Controllers\Controller; use App\Http\Controllers\Agent\helpdesk\TicketController; use App\Http\Controllers\Common\SettingsController; + // requests use App\Http\Requests\helpdesk\CreateTicketRequest; use App\Http\Requests\helpdesk\TicketRequest; use App\Http\Requests\helpdesk\TicketEditRequest; + // models use App\Model\helpdesk\Email\Banlist; use App\Model\helpdesk\Ticket\Tickets; @@ -18,18 +20,27 @@ use App\Model\helpdesk\Settings\Company; use App\Model\helpdesk\Settings\System; use App\Model\helpdesk\Settings\Alert; use App\Model\helpdesk\Ticket\Ticket_Status; +use App\Model\helpdesk\Ticket\Ticket_source; use App\Model\helpdesk\Email\Emails; use App\Model\helpdesk\Agent\Department; use App\Model\helpdesk\Manage\Help_topic; use App\Model\helpdesk\Ticket\Ticket_Form_Data; use App\Model\helpdesk\Form\Fields; +use App\Model\helpdesk\Utility\Timezones; +use App\Model\helpdesk\Utility\Date_time_format; +use App\Model\helpdesk\Agent\Teams; +use Illuminate\support\Collection; +use App\Model\Helpdesk\Manage\Sla_plan; use App\User; +use DB; + // classes use Auth; use Hash; use Input; use Mail; use PDF; +use Exception; /** * TicketController @@ -57,133 +68,97 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.inbox'); } + public function get_inbox() { - return \Datatable::collection(Tickets::where('status', '=', 1)->orderBy('id', 'DESC')->get()) - ->searchColumns('subject') - ->orderColumns('ticket_number') - - ->addColumn('checkbox', function ($ticket) { - return ""; - }) - - ->addColumn('name', function ($ticket) { - $title = Ticket_Thread::where('ticket_id', '=', $ticket->id)->first(); - $string = strip_tags($title->title); - if($title) - if($title == null){ - } else { - $collaborators = Ticket_Collaborator::where('ticket_id','=',$ticket->id)->get(); - $collab = count($collaborators); - // check atatchments - $attachments = Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - } - } - $titles = Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) { - $title = $title; - } - $assigned_to = User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) { - $assigned = "Unassigned"; - } else { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - if($collab > 0) { - $collabs = " "; - } - if($attach > 0) { - $attachs = " "; - if($collab > 0) { - $collabs = $collabs . $attachs; - } else { - $collabs = $attachs; - } - } - return "".$string." (".$count.") - ".$collab; - } - }) - - ->addColumn('Ticket ID', function ($ticket) { - $ticket_number = "id]) ."' title=''># ".$ticket->ticket_number.""; - return $ticket_number; - }) - - ->addColumn('Priority', function ($ticket) { - $priority = Ticket_Priority::where('priority_id', '=', $ticket->priority_id)->first(); - return "".$priority->priority_desc.""; - // return TicketController::usertimezone($st); - }) - - ->addColumn('From', function ($ticket) { - $from = User::where('id','=',$ticket->user_id)->first(); - if($from->role == "user") { - return $from->user_name; - } else { - return $from->first_name." ".$from->last_name; + if(Auth::user()->role=="admin"){ + $tickets = Tickets::where('status','=',1)->get();; + } else { + $dept = DB::table('department')->where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status',1)->where('dept_id', '=', $dept->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; } - }) + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; - ->addColumn('Last Replier', function ($ticket) { - $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - return $username; - }) + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; - ->addColumn('Assigned To', function ($ticket) { - $assigned_to = User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) { - $assigned = "Unassigned"; - } else { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - return $assigned; - }) - - ->addColumn('Last Activity', function ($ticket) { - $assigned_to = User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) { - $assigned = "Unassigned"; - } else { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - return $assigned; - }) - - ->addColumn('Last Activity', function ($ticket) { - $titles = Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) { - $title = $title; - } - return TicketController::usertimezone($title->created_at); - }) - - ->make(); - + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Unassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); } /** @@ -194,6 +169,106 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.open'); } + public function get_open() { + if(Auth::user()->role=="admin"){ + // $tickets = Tickets::where('status','=',1)->get();; + + $tickets = Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('assigned_to', '=', 0)->get(); + } else { + // $dept = DB::table('department')->where('name','=',Auth::user()->primary_dpt)->first(); + // $tickets = Tickets::where('status',1)->where('dept_id', '=', $dept->id)->get(); + + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('assigned_to', '=', 0)->where('dept_id','=',$dept->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Unassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + + + + /** * Show the answered ticket list page * @return type response @@ -202,6 +277,105 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.answered'); } + public function get_answered() { + if(Auth::user()->role=="admin"){ + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + + $tickets = Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->get(); + } else { + // $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->where('dept_id','=',$dept->id)->get(); + + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Usernassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + + /** * Show the Myticket list page * @return type response @@ -210,6 +384,99 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.myticket'); } + + public function get_myticket() { + if(Auth::user()->role=="admin"){ + $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + } else { + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Usernassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + /** * Show the Overdue ticket list page * @return type response @@ -226,6 +493,96 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.closed'); } + public function get_closed() { + if(Auth::user()->role=="admin"){ + $tickets = Tickets::where('status', '>', 1)->where('status', '<', 4)->get(); + } else { + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '>', 1)->where('dept_id','=',$dept->id)->where('status', '<', 4)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Usernassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + /** * Show the ticket list page * @return type response @@ -234,6 +591,98 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.assigned'); } + public function get_assigned() { + if(Auth::user()->role=="admin"){ + $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->get(); + } else { + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->where('dept_id','=',$dept->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Usernassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + /** * Show the New ticket page * @return type response @@ -259,12 +708,12 @@ class TicketController extends Controller { $body = $request->input('body'); $priority = $request->input('priority'); $phone = $request->input('phone'); - $source = "3"; + $source = Ticket_source::where('name','=','email')->first(); $headers = null; $help = Help_topic::where('id','=',$helptopic)->first(); $form_data = null; //create user - if ($this->create_user($email, $fullname, $subject, $body, $phone, $helptopic, $sla, $priority, $source, $headers, $help->department, $assignto, $form_data)) { + if ($this->create_user($email, $fullname, $subject, $body, $phone, $helptopic, $sla, $priority, $source->id, $headers, $help->department, $assignto, $form_data)) { return Redirect('newticket')->with('success', 'Ticket created successfully!'); } else { return Redirect('newticket')->with('fails', 'fails'); @@ -305,7 +754,7 @@ class TicketController extends Controller { $check_attachment = null; // Event fire $eventthread = $thread->where('ticket_id',$request->input('ticket_ID'))->first();$eventuserid = $eventthread->user_id;$emailadd = User::where('id',$eventuserid)->first()->email;$source = $eventthread->source;$form_data = $request->except('ReplyContent','ticket_ID','attachment'); - \Event::fire(new \App\Events\ClientTicketFormPost($form_data,$emailadd,$source)); + \Event::fire(new \App\Events\ClientTicketFormPost($form_data,$emailadd,$source)); // dd($attachments); // } //return $attachments; @@ -336,6 +785,10 @@ class TicketController extends Controller { if($tickets->status > 1) { $tickets->status = '1'; + $tickets->closed_at = '0'; + $tickets->closed = null; + $tickets->reopened_at = date('Y-m-d H:i:s'); + $tickets->reopened = 1; $tickets->isanswered = '1'; $tickets->save(); } @@ -456,7 +909,7 @@ class TicketController extends Controller { } else { $ticket = $ticket->where('id', '=', $ticket_id)->first(); - $ticket->sla_id = Input::get("sla_paln"); + $ticket->sla = Input::get("sla_paln"); $ticket->help_topic_id = Input::get("help_topic"); $ticket->source = Input::get("ticket_source"); $ticket->priority_id = Input::get("ticket_priority"); @@ -648,7 +1101,7 @@ class TicketController extends Controller { } } } - return true; + return ['0'=>$ticket_number2, '1'=>true]; } } @@ -708,13 +1161,17 @@ class TicketController extends Controller { if($find_number->status > 1) { $find_number->status = 1; + $find_number->closed = 0; + $find_number->closed_at = date('Y-m-d H:i:s'); + $find_number->reopened = 1; + $find_number->reopened_at = date('Y-m-d H:i:s'); $find_number->save(); $ticket_status = Ticket_Status::where('id','=',1)->first(); $user_name = User::where('id','=', $user_id)->first(); - if($user_name->role == 'user' ) { + if($user_name->role == 'user') { $username = $user_name->user_name; } elseif($user_name->role == 'agent' or $user_name->role == 'admin') { $username = $user_name->first_name . " " . $user_name->last_name; @@ -762,6 +1219,8 @@ class TicketController extends Controller { $ticket_number = $max_number->ticket_number; } } + + $ticket = new Tickets; $ticket->ticket_number = $this->ticket_number($ticket_number); $ticket->user_id = $user_id; @@ -773,6 +1232,15 @@ class TicketController extends Controller { $ticket->priority_id = $priority; $ticket->source = $source; $ticket->save(); + + $sla_plan = Sla_plan::where('id','=',$sla)->first(); + $ovdate = $ticket->created_at; + // dd($sla_plan->grace_period); + $new_date = date_add($ovdate, date_interval_create_from_date_string($sla_plan->grace_period)); + $ticket->duedate = $new_date; + $ticket->save(); + // dd($ticket->duedate); + $ticket_number = $ticket->ticket_number; $id = $ticket->id; @@ -846,6 +1314,7 @@ class TicketController extends Controller { public function close($id, Tickets $ticket) { $ticket_status = $ticket->where('id', '=', $id)->first(); $ticket_status->status = 3; + $ticket_status->closed = 1; $ticket_status->closed_at = date('Y-m-d H:i:s'); $ticket_status->save(); $ticket_thread = Ticket_Thread::where('ticket_id','=',$ticket_status->id)->first(); @@ -882,6 +1351,8 @@ class TicketController extends Controller { public function resolve($id, Tickets $ticket) { $ticket_status = $ticket->where('id', '=', $id)->first(); $ticket_status->status = 2; + $ticket_status->closed = 1; + $ticket_status->closed_at = date('Y-m-d H:i:s'); $ticket_status->save(); $ticket_status_message = Ticket_Status::where('id','=',$ticket_status->status)->first(); $thread = New Ticket_Thread; @@ -939,7 +1410,7 @@ class TicketController extends Controller { } else { - $ticket_delete->is_deleted = 0; + $ticket_delete->is_deleted = 1; $ticket_delete->status = 5; $ticket_delete->save(); $ticket_status_message = Ticket_Status::where('id','=',$ticket_delete->status)->first(); @@ -976,37 +1447,70 @@ class TicketController extends Controller { * @return type bool */ public function assign($id) { - $UserEmail = Input::get('user'); - // $UserEmail = 'sujitprasad12@yahoo.in'; - $user = User::where('email', '=', $UserEmail)->first(); - $user_id = $user->id; + $UserEmail = Input::get('assign_to'); + $assign_to = explode('_', $UserEmail); $ticket = Tickets::where('id', '=', $id)->first(); - $ticket_number = $ticket->ticket_number; - $ticket->assigned_to = $user_id; - $ticket->save(); - $ticket_thread = Ticket_Thread::where('ticket_id','=',$id)->first(); - $ticket_subject = $ticket_thread->title; - $thread = New Ticket_Thread; - $thread->ticket_id = $ticket->id; - $thread->user_id = Auth::user()->id; - $thread->is_internal = 1; - $thread->body = "This Ticket has been assigned to " . $user->first_name . " " . $user->last_name; - $thread->save(); - $company = $this->company(); - $system = $this->system(); + if($assign_to[0] == 'team') { + $ticket->team_id = $assign_to[1]; + $team_detail = Teams::where('id','=',$assign_to[1])->first(); + $assignee = $team_detail->name; - $agent = $user->first_name; - $agent_email = $user->email; + $ticket_number = $ticket->ticket_number; + $ticket->save(); + $ticket_thread = Ticket_Thread::where('ticket_id','=',$id)->first(); + $ticket_subject = $ticket_thread->title; + + $thread = New Ticket_Thread; + $thread->ticket_id = $ticket->id; + $thread->user_id = Auth::user()->id; + $thread->is_internal = 1; + $thread->body = "This Ticket has been assigned to " . $assignee; + $thread->save(); + + // $master = Auth::user()->first_name . " " . Auth::user()->last_name; + // if(Alert::first()->internal_status == 1 || Alert::first()->internal_assigned_agent == 1) { + // // ticket assigned send mail + // Mail::send('emails.Ticket_assign', ['agent' => $agent, 'ticket_number' => $ticket_number, 'from'=>$company, 'master' => $master, 'system' => $system], function ($message) use ($agent_email, $agent, $ticket_number, $ticket_subject) { + // $message->to($agent_email, $agent)->subject($ticket_subject.'[#' . $ticket_number . ']'); + // }); + // } + + } elseif ($assign_to[0] == 'user') { + $ticket->assigned_to = $assign_to[1]; + $user_detail = User::where('id','=',$assign_to[1])->first(); + $assignee = $user_detail->first_name . ' ' . $user_detail->last_name; + + $company = $this->company(); + $system = $this->system(); + + $ticket_number = $ticket->ticket_number; + $ticket->save(); + + $ticket_thread = Ticket_Thread::where('ticket_id','=',$id)->first(); + $ticket_subject = $ticket_thread->title; + + $thread = New Ticket_Thread; + $thread->ticket_id = $ticket->id; + $thread->user_id = Auth::user()->id; + $thread->is_internal = 1; + $thread->body = "This Ticket has been assigned to " . $assignee; + $thread->save(); + + $agent = $user_detail->first_name; + $agent_email = $user_detail->email; + $master = Auth::user()->first_name . " " . Auth::user()->last_name; - if(Alert::first()->internal_status == 1 || Alert::first()->internal_assigned_agent == 1) { + // if(Alert::first()->internal_status == 1 || Alert::first()->internal_assigned_agent == 1) { // ticket assigned send mail Mail::send('emails.Ticket_assign', ['agent' => $agent, 'ticket_number' => $ticket_number, 'from'=>$company, 'master' => $master, 'system' => $system], function ($message) use ($agent_email, $agent, $ticket_number, $ticket_subject) { $message->to($agent_email, $agent)->subject($ticket_subject.'[#' . $ticket_number . ']'); }); - } + // } + } + return 1; } @@ -1052,7 +1556,7 @@ class TicketController extends Controller { $NewThread->save(); // } - $ticket->assigned_to = 0; + $ticket->assigned_to = null; $ticket->save(); return 1; @@ -1100,6 +1604,9 @@ class TicketController extends Controller { $company = $this->company(); if(isset($headers)) { foreach ($headers as $email=>$name) { + if($name == null) { + $name = $email; + } $name = $name; $email = $email; if($this->check_email($email) == false) { @@ -1200,6 +1707,110 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.trash'); } + public function get_trash() { + if(Auth::user()->role=="admin"){ + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + + $tickets = Tickets::where('status', '=', 5)->get(); + + // $tickets = Tickets::where('assigned_to', '=', null)->where('status','1')->get(); + } else { + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('status', '=', 5)->where('dept_id','=',$dept->id)->get(); + + // $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + // $tickets = Tickets::where('assigned_to', '=', null)->where('dept_id','=',$dept->id)->get(); + + // $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Unassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + + + /** * shows unassigned tickets * @return type @@ -1208,6 +1819,104 @@ class TicketController extends Controller { return view('themes.default1.agent.helpdesk.ticket.unassigned'); } + public function get_unassigned() { + if(Auth::user()->role=="admin"){ + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + + $tickets = Tickets::where('assigned_to', '=', null)->where('status','1')->get(); + } else { + + $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + $tickets = Tickets::where('assigned_to', '=', null)->where('dept_id','=',$dept->id)->get(); + + // $dept = Department::where('name','=',Auth::user()->primary_dpt)->first(); + // $tickets = Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->get(); + } + return \Datatable::collection(new Collection($tickets)) + ->addColumn('id',function($ticket){ + return ""; + }) + + ->addColumn('subject',function($ticket){ + $subject = DB::table('ticket_thread')->select('title')->where('ticket_id',"=",$ticket->id)->first(); + $string = $subject->title; + if(strlen($string) > 20) { + $stringCut = substr($string, 0, 30); + $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; + } + //collabrations + $collaborators = DB::table('ticket_collaborator')->where('ticket_id','=',$ticket->id)->get(); + $collab = count($collaborators); + if($collab > 0){ + $collabString = ' '; + } else { + $collabString = null; + } + $threads = Ticket_Thread::where('ticket_id','=',$ticket->id)->first();//Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); + $count = count($threads); + $attachment = Ticket_attachments::where('thread_id','=',$threads->id)->get(); + $attachCount = count($attachment); + if($attachCount > 0 ){ + $attachString = ' '; + } else { + $attachString = ""; + } + //return $threads->id; + + return "id])."' title='".$subject->title."'>".$string." (".$count.")".$collabString.$attachString; + + }) + + ->addColumn('ticket_number',function($ticket){ + return "id])."' title='".$ticket->ticket_number."'>#".$ticket->ticket_number.""; + }) + + ->addColumn('priority',function($ticket){ + $priority = DB::table('ticket_priority')->select('priority','priority_color')->where('priority_id',"=",$ticket->priority_id)->first(); + return ''.$priority->priority.''; + //return "loda"; + }) + + ->addColumn('from',function($ticket){ + $from = DB::table('users')->select('user_name')->where('id',"=",$ticket->user_id)->first(); + return "".$from->user_name.""; + }) + + ->addColumn('Last Replier', function ($ticket) { + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '!=', 1)->max('id'); + $TicketDatarow = Ticket_Thread::where('id', '=', $TicketData)->first(); + $LastResponse = User::where('id', '=', $TicketDatarow->user_id)->first(); + if($LastResponse->role == "user") { + $rep = "#F39C12"; + $username = $LastResponse->user_name; + } else { + $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; + if($LastResponse->first_name==null || $LastResponse->last_name==null) { + $username = $LastResponse->user_name; + } + } + return "".$username.""; + }) + + ->addColumn('assigned_to',function($ticket){ + if($ticket->assigned_to==null){ + return "Unassigned"; + } else { + $assign = DB::table("users")->where('id',"=",$ticket->assigned_to)->first(); + return "".$assign->first_name." ".$assign->last_name.""; + } + }) + + ->addColumn('Last',function($ticket){ + $TicketData = Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); + $TicketDatarow = Ticket_Thread::select('updated_at')->where('id','=',$TicketData)->first(); + return date('d F Y, H:i:s',strtotime($TicketDatarow->updated_at)); + }) + ->searchColumns('subject','from','assigned_to','ticket_number','priority') + ->orderColumns('subject','from','assigned_to','Last Replier','ticket_number','priority','Last') + ->make(); + } + /** * shows tickets assigned to Auth::user() * @return type @@ -1349,9 +2058,16 @@ class TicketController extends Controller { $ticket->save(); } elseif($value == "Close") { $ticket->status = 2; + $ticket->closed = 1; + $ticket->closed_at = date('Y-m-d H:i:s'); $ticket->save(); } elseif($value == "Open") { $ticket->status = 1; + $ticket->reopened = 1; + $ticket->reopened_at = date('Y-m-d H:i:s'); + $ticket->closed = 0; + $ticket->closed_at = null; + $ticket->save(); } } @@ -1373,10 +2089,12 @@ class TicketController extends Controller { */ public static function usertimezone($utc) { $set = System::whereId('1')->first(); - $tz = $set->time_zone; + $timezone = Timezones::whereId($set->time_zone)->first(); + $tz = $timezone->name; $format = $set->date_time_format; date_default_timezone_set($tz); $offset = date('Z', strtotime($utc)); + $format = Date_time_format::whereId($format)->first()->format; $date = date($format, strtotime($utc) + $offset); return $date; } diff --git a/app/Http/Controllers/Agent/helpdesk/UserController.php b/app/Http/Controllers/Agent/helpdesk/UserController.php index 7431237b3..c197d1892 100644 --- a/app/Http/Controllers/Agent/helpdesk/UserController.php +++ b/app/Http/Controllers/Agent/helpdesk/UserController.php @@ -1,6 +1,7 @@ middleware('auth'); + // checking if role is agent $this->middleware('role.agent'); - // $this->middleware('roles'); } /** - * Display a listing of the resource. + * Display all list of the users. * @param type User $user - * @return type Response + * @return type view */ public function index() { try { /* get all values in Sys_user */ return view('themes.default1.agent.helpdesk.user.index'); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } /** - * This function is used to display the list of users + * This function is used to display the list of users using chumper datatables * @return datatable */ public function user_list() { - + // displaying list of users with chumper datatables return \Datatable::collection(User::where('role','!=','admin')->where('role','!=','agent')->get()) + /* searchable column username */ ->searchColumns('user_name') + /* order column username and email */ ->orderColumns('user_name', 'email') + /* column username */ ->addColumn('user_name', function ($model) { return $model->user_name; }) + /* column email */ ->addColumn('email', function ($model) { $email = $model->email; return $email; }) + /* column phone */ ->addColumn('phone', function ($model) { $phone = ""; if($model->phone_number) { @@ -94,6 +96,7 @@ class UserController extends Controller { $phone = $phone ."   ". $mobile; return $phone; }) + /* column status */ ->addColumn('status', function ($model) { $status = $model->active; if($status == 1) { @@ -103,55 +106,37 @@ class UserController extends Controller { } return $stat; }) + /* column last login date */ ->addColumn('lastlogin', function ($model) { $t = $model->updated_at; return TicketController::usertimezone($t); }) + /* column actions */ ->addColumn('Actions', function ($model) { - //return 'id . ' class="btn btn-danger btn-flat" onclick="myFunction()">Delete id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; - //return '
    id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; - return ' ' . \Lang::get('lang.edit') . ' ' . \Lang::get('lang.view') . ' - '; + return '' . \Lang::get('lang.edit') . '  ' . \Lang::get('lang.view') . ''; }) ->make(); } /** - * Show the form for creating a new resource. - * @return type Response + * Show the form for creating a new users. + * @return type view */ public function create() { try { return view('themes.default1.agent.helpdesk.user.create'); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails',$e->errorInfo[2]); } } /** - * Store a newly created resource in storage. + * Store a newly created users in storage. * @param type User $user * @param type Sys_userRequest $request - * @return type Response + * @return type redirect */ public function store(User $user, Sys_userRequest $request) { - try { /* insert the input request to sys_user table */ /* Check whether function success or not */ $user->email = $request->input('email'); @@ -162,24 +147,21 @@ class UserController extends Controller { $user->active = $request->input('active'); $user->internal_note = $request->input('internal_note'); $user->role = 'user'; - if ($user->save() == true) { + try { + $user->save(); /* redirect to Index page with Success Message */ return redirect('user')->with('success', 'User Created Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Create'); - } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Create'); - } + return redirect('user')->with('fails', $e->errorInfo[2]); + } } /** - * Display the specified resource. + * Display the specified users. * @param type int $id * @param type User $user - * @return type Response + * @return type view */ public function show($id, User $user) { try { @@ -203,89 +185,71 @@ class UserController extends Controller { $users = $user->whereId($id)->first(); return view('themes.default1.agent.helpdesk.user.edit', compact('users')); } catch (Exception $e) { - return view('404'); + return redirect()->back()->with('fails', $e->errorInfo[2]); } } /** - * Update the specified resource in storage. + * Update the specified user in storage. * @param type int $id * @param type User $user * @param type Sys_userUpdate $request * @return type Response */ public function update($id, User $user, Sys_userUpdate $request) { - try { + /* select the field where id = $id(request Id) */ $users = $user->whereId($id)->first(); /* Update the value by selected field */ /* Check whether function success or not */ - if ($users->fill($request->input())->save() == true) { + try{ + $users->fill($request->input())->save(); /* redirect to Index page with Success Message */ return redirect('user')->with('success', 'User Updated Successfully'); - } else { + } catch (Exception $e) { /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Update'); + return redirect()->back()->with('fails', $e->errorInfo[2]); } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Update'); - } } /** - * Remove the specified resource from storage. - * @param type int $id - * @param type User $user - * @return type Response - */ - public function destroy($id, User $user) { - try { - /* select the field where id = $id(request Id) */ - $users = $user->whereId($id)->first(); - /* delete the selected field */ - /* Check whether function success or not */ - if ($users->delete() == true) { - /* redirect to Index page with Success Message */ - return redirect('user')->with('success', 'User Deleted Successfully'); - } else { - /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Delete'); - } - } catch (Exception $e) { - /* redirect to Index page with Fails Message */ - return redirect('user')->with('fails', 'User can not Delete'); - } - } - - /** - * get profile page - * @return type Response + * get agent profile page + * @return type view */ public function getProfile() { $user = Auth::user(); - return view('themes.default1.agent.helpdesk.user.profile', compact('user')); - } + try { + return view('themes.default1.agent.helpdesk.user.profile', compact('user')); + } catch(Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); + } + } /** * get profile edit page - * @return type Response + * @return type view */ public function getProfileedit() { $user = Auth::user(); - return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user')); + try { + return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user')); + } catch (Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); + } } /** - * post profile page + * post profile edit * @param type int $id * @param type ProfileRequest $request - * @return type Response + * @return type Redirect */ public function postProfileedit(ProfileRequest $request) { + // geet authenticated user details $user = Auth::user(); $user->gender = $request->input('gender'); $user->save(); + // checking availability of agent profile ppicture if ($user->profile_pic == 'avatar5.png' || $user->profile_pic == 'avatar2.png') { if ($request->input('gender') == 1) { $name = 'avatar5.png'; @@ -297,17 +261,26 @@ class UserController extends Controller { $user->profile_pic = $name; } } + // checking if the post system includes agent profile picture upload if (Input::file('profile_pic')) { - //$extension = Input::file('profile_pic')->getClientOriginalExtension(); + // fetching picture name $name = Input::file('profile_pic')->getClientOriginalName(); + // fetching upload destination path $destinationPath = 'lb-faveo/profilepic'; + // adding a random value to profile picture filename $fileName = rand(0000, 9999) . '.' . $name; - //echo $fileName; + // moving the picture to a destination folder Input::file('profile_pic')->move($destinationPath, $fileName); + // saving filename to database $user->profile_pic = $fileName; } else { - $user->fill($request->except('profile_pic', 'gender'))->save(); - return Redirect::route('profile')->with('success', 'Profile Updated sucessfully'); + try{ + $user->fill($request->except('profile_pic', 'gender'))->save(); + return Redirect::route('profile')->with('success', 'Profile Updated sucessfully'); + } catch (Exception $e){ + return Redirect::route('profile')->with('success', $e->errorInfo[2]); + } + } if ($user->fill($request->except('profile_pic'))->save()) { return Redirect::route('profile')->with('success', 'Profile Updated sucessfully'); @@ -318,22 +291,27 @@ class UserController extends Controller { * Post profile password * @param type int $id * @param type ProfilePassword $request - * @return type Response + * @return type Redirect */ public function postProfilePassword($id, ProfilePassword $request) { + // get authenticated user $user = Auth::user(); - //echo $user->password; + // checking if the old password matches the new password if (Hash::check($request->input('old_password'), $user->getAuthPassword())) { $user->password = Hash::make($request->input('new_password')); - $user->save(); - return redirect('profile-edit')->with('success1', 'Password Updated sucessfully'); + try{ + $user->save(); + return redirect('profile-edit')->with('success1', 'Password Updated sucessfully'); + } catch (Exception $e) { + return redirect('profile-edit')->with('fails', $e->errorInfo[2]); + } } else { return redirect('profile-edit')->with('fails1', 'Password was not Updated. Incorrect old password'); } } /** - * User Assign Org + * Assigning an user to an organization * @param type $id * @return type boolean */ @@ -347,21 +325,21 @@ class UserController extends Controller { } /** - * user create organisation - * @return type value + * creating an organization in user profile page via modal popup + * @param type $id + * @return type */ public function User_Create_Org($id) { - + // checking if the entered value for website is available in database if(Input::get('website')!=null) { // checking website $check = Organization::where('website','=',Input::get('website'))->first(); } else { $check = null; } - - // checking name + // checking if the name is unique $check2 = Organization::where('name','=',Input::get('name'))->first(); - + // if any of the fields is not available then return false if (\Input::get('name') == null) { return "Name is required"; } elseif($check2 != null) { @@ -369,6 +347,7 @@ class UserController extends Controller { } elseif($check != null) { return "Website should be Unique"; } else { + // storing organization details and assigning the current user to that organization $org = new Organization; $org->name = Input::get('name'); $org->phone = Input::get('phone'); @@ -381,7 +360,7 @@ class UserController extends Controller { $user_org->org_id = $org->id; $user_org->user_id = $id; $user_org->save(); - + // for success return 0 return 0; } } diff --git a/app/Http/Controllers/Agent/kb/ArticleController.php b/app/Http/Controllers/Agent/kb/ArticleController.php index c3e02a653..fc4985ebd 100644 --- a/app/Http/Controllers/Agent/kb/ArticleController.php +++ b/app/Http/Controllers/Agent/kb/ArticleController.php @@ -1,159 +1,171 @@ + * @package Controllers + * @subpackage Controller + * @author Ladybird */ - class ArticleController extends Controller { /** - * Display a listing of the resource. - * - * @return Response + * Create a new controller instance. + * constructor to check + * 1. authentication + * 2. user roles + * 3. roles must be agent + * @return void */ public function __construct() { + // checking authentication $this->middleware('auth'); + // checking roles $this->middleware('roles'); SettingsController::language(); } + public function test() { //$table = $this->setDatatable(); return view('themes.default1.agent.kb.article.test'); - } + + /** + * Fetching all the list of articles in a chumper datatable format + * @return type void + */ public function getData() { - - //return 'kfjhje'; - + // returns chumper datatable return Datatable::collection(Article::All()) + /* searcable column name */ ->searchColumns('name') + /* order column name and description */ ->orderColumns('name', 'description') + /* add column name */ ->addColumn('name', function ($model) { return $model->name; }) + /* add column Created */ ->addColumn('Created', function ($model) { $t = $model->created_at; return TicketController::usertimezone($t); }) + /* add column action */ ->addColumn('Actions', function ($model) { - //return 'id . ' class="btn btn-danger btn-flat" onclick="myFunction()">Delete id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; - //return '
    id . '/edit class="btn btn-warning btn-flat">Edit id . ' class="btn btn-warning btn-flat">View'; + /* here are all the action buttons and modal popup to delete articles with confirmations */ return ' id . '/edit class="btn btn-warning btn-xs">' . \Lang::get('lang.edit') . ' slug .' class="btn btn-primary btn-xs">' . \Lang::get('lang.view') . ' '; - }) - ->make(); + + '; + }) + ->make(); } /** - * Index for Articles - * @param type Article $article - * @return type Response + * List of Articles + * @return type view */ public function index() { - /* show the index page with article list */ - return view('themes.default1.agent.kb.article.index'); + /* show article list */ + try{ + return view('themes.default1.agent.kb.article.index'); + } catch(Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); + } } /** * Creating a Article * @param type Category $category - * @return type Response + * @return type view */ public function create(Category $category) { - //$cat = $category->whereId(33)->first(); - //$tm = $cat->created_at; - //$this->usertimezone($tm); - // // /* get the attributes of the category */ + /* get the attributes of the category */ $category = $category->lists('id', 'name'); /* get the create page */ - return view('themes.default1.agent.kb.article.create', compact('category')); + try{ + return view('themes.default1.agent.kb.article.create', compact('category')); + } catch(Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); + } + } /** - * Insert the values to the article table + * Insert the values to the article * @param type Article $article * @param type ArticleRequest $request - * @return type + * @return type redirect */ public function store(Article $article, ArticleRequest $request) { - - $sl = $request->input('slug'); - $slug = str_slug($sl, "-"); - $article->slug = $slug; + // requesting the values to store article data + $sl = $request->input('slug'); + $slug = str_slug($sl, "-"); + $article->slug = $slug; $article->fill($request->except('created_at','slug'))->save(); + // creating article category relationship $requests = $request->input('category_id'); $id = $article->id; foreach ($requests as $req) { - DB::insert('insert into 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 */ - if ($article->fill($request->except('slug'))->save()) //true: redirect to index page with success message - { + try{ + $article->fill($request->except('slug'))->save(); return redirect('article')->with('success', 'Article Inserted Successfully'); - } else //redirect to index page with fail message - { - return redirect('article')->with('fails', 'Article Not Inserted'); + } catch (Exception $e) { + return redirect('article')->with('fails', 'Article Not Inserted'. '
  • '.$e->errorInfo[2].'
  • '); } } - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // - } - /** * Edit an Article by id * @param type Integer $id * @param type Article $article * @param type Relationship $relation * @param type Category $category - * @return Response + * @return view */ public function edit($slug, Article $article, Relationship $relation, Category $category) { @@ -168,7 +180,12 @@ class ArticleController extends Controller { /* Get the selected article with id */ $article = $article->whereId($id)->first(); /* send to the edit page */ - return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category')); + try { + return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category')); + } catch(Exception $e){ + return redirect()->back()->with('fails',$e->errorInfo[2]); + } + } /** @@ -197,14 +214,13 @@ class ArticleController extends Controller { DB::insert('insert into article_relationship (category_id, article_id) values (?,?)', [$req, $id]); } /* update the value to the table */ - if ($article->fill($request->all())->save()) //true: redirect to index page with success message - { + try{ + $article->fill($request->all())->save(); $article->slug = $slug; $article->save(); return redirect('article')->with('success', 'Article Updated Successfully'); - } else // redirect to index page with fails message - { - return redirect('article')->with('fails', 'Article Not Updated'); + } catch(Exception $e){ + return redirect('article')->with('fails', 'Article Not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } @@ -215,59 +231,46 @@ class ArticleController extends Controller { * @return Response */ public function destroy($slug, Article $article, Relationship $relation, Comment $comment) { - /* delete the selected article from the table */ $article = $article->where('slug',$slug)->first(); //get the selected article via id - //dd($article); $id = $article->id; $comments = $comment->where('article_id',$id)->get(); - - if($comments) - { + if($comments) { foreach($comments as $comment) $comment->delete(); } - + // deleting relationship $relation = $relation->where('article_id', $id)->first(); - if($relation) - { + if($relation) { $relation->delete(); } - if($article) - { - if ($article->delete()) //true:redirect to index page with success message - { + if($article) { + if ($article->delete()) {//true:redirect to index page with success message return Redirect::back()->with('success', 'Article Deleted Successfully'); - } else //redirect to index page with fails message - { + } else { //redirect to index page with fails message return Redirect::back()->with('fails', 'Article Not Deleted'); } - - } - else - { - + } else { return Redirect::back()->with('fails', 'Article can Not Deleted'); - } - } + /** + * user time zone + * fetching timezone + * @param type $utc + * @return type + */ static function usertimezone($utc) { $user = Auth::user(); $tz = $user->timezone; $set = Settings::whereId('1')->first(); $format = $set->dateformat; //$utc = date('M d Y h:i:s A'); - //echo 'UTC : ' . $utc; date_default_timezone_set($tz); - $offset = date('Z', strtotime($utc)); - //print "offset: $offset \n"; $date = date($format, strtotime($utc) + $offset); echo $date; - //return substr($date, 0, -6); - } } diff --git a/app/Http/Controllers/Agent/kb/CategoryController.php b/app/Http/Controllers/Agent/kb/CategoryController.php index dbc3edbee..16558f640 100644 --- a/app/Http/Controllers/Agent/kb/CategoryController.php +++ b/app/Http/Controllers/Agent/kb/CategoryController.php @@ -1,33 +1,47 @@ + * @package Controllers + * @subpackage Controller + * @author Ladybird */ - class CategoryController extends Controller { /** - * Display a listing of the resource. - * - * @return Response + * Create a new controller instance. + * constructor to check + * 1. authentication + * 2. user roles + * 3. roles must be agent + * @return void */ public function __construct() { + // checking authentication $this->middleware('auth'); + // checking roles $this->middleware('roles'); SettingsController::language(); } @@ -38,48 +52,56 @@ class CategoryController extends Controller { * @return Response */ public function index() { - /* get the view of index of the catogorys with all attributes of category model */ - return view('themes.default1.agent.kb.category.index'); + try{ + return view('themes.default1.agent.kb.category.index'); + } catch (Exception $e) { + return redirect()->back()->with('fails', $e->errorInfo[2]); + } } + + /** + * fetching category list in chumper datatables + * @return type chumper datatable + */ public function getData() { - - //return 'kfjhje'; - + /* fetching chumper datatables */ return Datatable::collection(Category::All()) + /* search column name */ ->searchColumns('name') + /* order column name and description */ ->orderColumns('name', 'description') + /* add column name */ ->addColumn('name', function ($model) { return $model->name; }) - + /* add column Created */ ->addColumn('Created', function ($model) { - $t = $model->created_at; return TicketController::usertimezone($t); }) + /* add column Actions */ + /* there are action buttons and modal popup to delete a data column */ ->addColumn('Actions', function ($model) { - //return 'id . ' class="btn btn-danger btn-flat">Delete id . '/edit class="btn btn-warning btn-flat">Edit View'; return ' id . '/edit class="btn btn-warning btn-xs">'. \Lang::get("lang.edit") .' '. \Lang::get("lang.view") .' '; + + '; }) ->make(); @@ -88,71 +110,62 @@ class CategoryController extends Controller { /** * Create a Category * @param type Category $category - * @return Response + * @return type view */ public function create(Category $category) { /* Get the all attributes in the category model */ $category = $category->get(); /* get the view page to create new category with all attributes of category model*/ - return view('themes.default1.agent.kb.category.create', compact('category')); - } - - /** - * Store a newly created resource in storage. - * - * @return Response - */ - public function store(Category $category, CategoryRequest $request) { - /* Get the whole request from the form and insert into table via model */ - - $sl = $request->input('slug'); - $slug = str_slug($sl, "-"); - - $category->slug = $slug; - //$category->save(); - - if ($category->fill($request->except('slug'))->save()) //True: send success message to index page - { - return Redirect::back()->with('success', 'Category Inserted Successfully'); - } else //send fail to index page - { - return Redirect::back()->with('fails', 'Category Not Inserted'); + try { + return view('themes.default1.agent.kb.category.create', compact('category')); + } catch(Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); } } /** - * Display the specified resource. - * - * @param int $id - * @return Response + * To store the selected category + * @param type Category $category + * @param type CategoryRequest $request + * @return type Redirect */ - public function show($id) { - // + public function store(Category $category, CategoryRequest $request) { + /* Get the whole request from the form and insert into table via model */ + $sl = $request->input('slug'); + $slug = str_slug($sl, "-"); + $category->slug = $slug; + // send success message to index page + try{ + $category->fill($request->except('slug'))->save(); + return Redirect::back()->with('success', 'Category Inserted Successfully'); + } catch(Exception $e) { + return Redirect::back()->with('fails', 'Category Not Inserted'.'
  • '.$e->errorInfo[2].'
  • '); + } } /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return Response + * Show the form for editing the specified category. + * @param type $slug + * @param type Category $category + * @return type view */ public function edit($slug, Category $category) { - + // fetch the category $cid = $category->where('id', $slug)->first(); $id = $cid->id; /* get the atributes of the category model whose id == $id */ $category = $category->whereId($id)->first(); /* get the Edit page the selected category via id */ return view('themes.default1.agent.kb.category.edit', compact('category')); - } /** - * Update the specified resource in storage. - * - * @param int $id - * @return Response + * Update the specified Category in storage. + * @param type $slug + * @param type Category $category + * @param type CategoryUpdate $request + * @return type redirect */ public function update($slug, Category $category, CategoryUpdate $request) { @@ -163,42 +176,41 @@ class CategoryController extends Controller { // dd($slug); $category->slug = $slug; /* update the values at the table via model according with the request */ - if ($category->fill($request->all())->save()) //True: redirct to index page with success message - { + //redirct to index page with success message + try{ + $category->fill($request->all())->save(); $category->slug = $slug; $category->save(); - return redirect('category')->with('success', 'Category Updated Successfully'); - } else //redirect to index with fails message - { - return redirect('category')->with('fails', 'Category Not Updated'); + return redirect('category')->with('success', 'Category Updated Successfully'); + } catch(Exception $e) { + //redirect to index with fails message + return redirect('category')->with('fails', 'Category Not Updated'.'
  • '.$e->errorInfo[2].'
  • '); } } /** - * Remove the specified resource from storage. - * - * @param int $id - * @return Response + * Remove the specified category from storage. + * @param type $id + * @param type Category $category + * @param type Relationship $relation + * @return type Redirect */ public function destroy($id, Category $category, Relationship $relation) { $relation = $relation->where('category_id', $id)->first(); - // dd($relation); if($relation != null){ return Redirect::back()->with('fails', 'Category Not Deleted'); } else { - /* delete the category selected, id == $id */ $category = $category->whereId($id)->first(); - if ($category->delete()) //True: redirect to index with success message - { + // redirect to index with success message + try{ + $category->delete(); return Redirect::back()->with('success', 'Category Deleted Successfully'); - } else //redirect to index page fails message - { - return Redirect::back()->with('fails', 'Category Not Deleted'); - } - + } catch(Exception $e){ + return Redirect::back()->with('fails', 'Category Not Deleted'.'
  • '.$e->errorInfo[2].'
  • '); + } } } diff --git a/app/Http/Controllers/Agent/kb/PageController.php b/app/Http/Controllers/Agent/kb/PageController.php index 1e4a61660..a6a6b7a0b 100644 --- a/app/Http/Controllers/Agent/kb/PageController.php +++ b/app/Http/Controllers/Agent/kb/PageController.php @@ -1,89 +1,113 @@ + */ class PageController extends Controller { /** - * Contructor for both Authentication and Model Injecting - * @param type Page $page - * @return type + * Create a new controller instance. + * constructor to check + * 1. authentication + * 2. user roles + * 3. roles must be agent + * @return void */ public function __construct(Page $page) { + // checking authentication $this->middleware('auth'); + // checking roles $this->middleware('roles'); $this->page = $page; SettingsController::language(); } /** - * Display a listing of the resource. - * - * @return Response + * Display the list of pages + * @return type */ public function index() { - $pages = $this->page->paginate(3); $pages->setPath('page'); - return view('themes.default1.agent.kb.pages.index', compact('pages')); - + try{ + return view('themes.default1.agent.kb.pages.index', compact('pages')); + } catch(Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); + } } + /** + * fetching pages list in chumper datatables + * @return type + */ public function getData() { - - //return 'kfjhje'; - + /* fetching chumper datatables */ return Datatable::collection(Page::All()) + /* search column name */ ->searchColumns('name') + /* order column name, description and created */ ->orderColumns('name', 'description', 'created') + /* add column name */ ->addColumn('name', function ($model) { return $model->name; }) - + /* add column Created */ ->addColumn('Created', function ($model) { - $t = $model->created_at; return TicketController::usertimezone($t); }) + /* add column Actions */ + /* there are action buttons and modal popup to delete a data column */ ->addColumn('Actions', function ($model) { - - //return 'id . ' class="btn btn-danger btn-flat">Delete id . '/edit class="btn btn-warning btn-flat">Edit View'; return ' slug . '/edit class="btn btn-warning btn-xs">'. \Lang::get('lang.edit') .' slug . ' class="btn btn-primary btn-xs">'. \Lang::get('lang.view') .' '; + + '; }) ->make(); } /** * Show the form for creating a new resource. - * - * @return Response + * @return type view */ public function create() { return view('themes.default1.agent.kb.pages.create'); @@ -97,61 +121,65 @@ class PageController extends Controller { public function store(PageRequest $request) { $sl = $request->input('slug'); $slug = str_slug($sl, "-"); - $this->page->slug = $slug; - - $this->page->fill($request->except('slug'))->save(); - return redirect('page'); - } - - /** - * Display the specified resource. - * - * @param int $id - * @return Response - */ - public function show($id) { - // + try{ + $this->page->fill($request->except('slug'))->save(); + return redirect('page')->with('success','Page created successfully'); + } catch(Exception $e) { + return redirect('page')->with('fails',$e->errorInfo[2]); + } } /** * To edit a page - * @param type $id - * @return type + * @param type $slug + * @return type view */ public function edit($slug) { - $page = $this->page->where('slug', $slug)->first(); - return view('themes.default1.agent.kb.pages.edit', compact('page')); + try{ + $page = $this->page->where('slug', $slug)->first(); + return view('themes.default1.agent.kb.pages.edit', compact('page')); + } catch (Exception $e) { + return redirect('page')->with('fails',$e->errorInfo[2]); + } } /** * To update a page - * @param type $id - * @param type Request $request - * @return type + * @param type $slug + * @param type PageUpdate $request + * @return type redirect */ public function update($slug, PageUpdate $request) { + // get pages with respect to slug $pages = $this->page->where('slug', $slug)->first(); $sl = $request->input('slug'); - $slug = str_slug($sl, "-"); - - $this->page->slug = $slug; - //$id = $page->id; - $pages->fill($request->all())->save(); - $pages->slug = $slug; - $pages->save(); - return redirect('page')->with('success', 'Your Page Updated Successfully'); + $slug = str_slug($sl, "-"); + $this->page->slug = $slug; + try{ + $pages->fill($request->all())->save(); + $pages->slug = $slug; + $pages->save(); + return redirect('page')->with('success', 'Your Page Updated Successfully'); + } catch(Exception $e) { + return redirect('page')->with('fails', $e->errorInfo[2]); + } } /** - * To Delete one Page - * @param type $id - * @return type + * To Delete a Page + * @param type $id + * @return type redirect */ public function destroy($id) { - $page = $this->page->whereId($id)->first(); - $page->delete(); - return redirect('page')->with('success', 'Page Deleted Successfully'); + try{ + // get the page to be deleted + $page = $this->page->whereId($id)->first(); + $page->delete(); + return redirect('page')->with('success', 'Page Deleted Successfully'); + } catch (Exception $e) { + return redirect('page')->with('fails', $e->errorInfo[2]); + } } } \ No newline at end of file diff --git a/app/Http/Controllers/Agent/kb/SettingsController.php b/app/Http/Controllers/Agent/kb/SettingsController.php index 0a5b6ef67..edd4339d0 100644 --- a/app/Http/Controllers/Agent/kb/SettingsController.php +++ b/app/Http/Controllers/Agent/kb/SettingsController.php @@ -1,38 +1,59 @@ + */ class SettingsController extends Controller { /** - * Display a listing of the resource. - * - * @return Response + * Create a new controller instance. + * constructor to check + * 1. authentication + * 2. user roles + * 3. roles must be agent + * @return void */ public function __construct() { + // checking authentication $this->middleware('auth'); + // checking roles $this->middleware('roles'); $this->language(); } @@ -42,8 +63,7 @@ class SettingsController extends Controller { * @return response * @package default */ - public function settings(Settings $settings, Timezones $time, DateFormat $date) { - + public function settings(Settings $settings, Timezones $time, Date_format $date) { /* get the setting where the id == 1 */ $settings = $settings->whereId('1')->first(); $time = $time->get(); @@ -62,19 +82,14 @@ class SettingsController extends Controller { { /* fetch the values of company request */ $settings = $settings->whereId('1')->first(); - if (Input::file('logo')) { $name = Input::file('logo')->getClientOriginalName(); - $destinationPath = 'lb-faveo/dist/image'; $fileName = rand(0000, 9999) . '.' . $name; //echo $fileName; - Input::file('logo')->move($destinationPath, $fileName); - $settings->logo = $fileName; //$thDestinationPath = 'dist/th'; - Image::make($destinationPath . '/' . $fileName, array( 'width' => 300, 'height' => 300, @@ -83,28 +98,21 @@ class SettingsController extends Controller { } if (Input::file('background')) { $name = Input::file('background')->getClientOriginalName(); - $destinationPath = 'lb-faveo/dist/image'; $fileName = rand(0000, 9999) . '.' . $name; echo $fileName; - Input::file('background')->move($destinationPath, $fileName); - $settings->background = $fileName; //$thDestinationPath = 'dist/th'; - Image::make($destinationPath . '/' . $fileName, array( 'width' => 300, 'height' => 300, 'grayscale' => false, ))->save('lb-faveo/dist/image/' . $fileName); } - /* Check whether function success or not */ - if ($settings->fill($request->except('logo', 'background'))->save() == true) { /* redirect to Index page with Success Message */ - return redirect('settings')->with('success', 'Settings Updated Successfully'); } else { /* redirect to Index page with Fails Message */ @@ -117,49 +125,6 @@ class SettingsController extends Controller { } -/** - * to get the faq view page - * @return response - */ - public function Faq(Faq $faq) { - /* fetch the values of faq */ - $faq = $faq->whereId('1')->first(); - return view('themes.default1.agent.settings.faq', compact('faq')); - - } - public function postfaq($id, Faq $faq, Request $request) { - $faq = $faq->whereId('1')->first(); - if ($faq->fill($request->input())->save()) { - return redirect('create-faq')->with('success', 'Faq updated Successfully'); - } else { - return redirect('craete-faq')->with('fails', 'Faq not updated'); - } - } - - /** - * get the create page to insert the values to database - * @return type response - */ - public function CreateSocialLink(Social $social) { - $social = $social->whereId('1')->first(); - return view('themes.default1.agent.kb.settings.social', compact('social')); - } - - /** - * - * @param type Social $social - * @param type Request $request - * @return type resonse - */ - public function PostSocial(Social $social, SocialRequest $request) { - $social = $social->whereId('1')->first(); - if ($social->fill($request->input())->save()) { - return redirect('social')->with('success', 'Your Social Links Stored'); - } else { - return redirect('social')->with('fails', 'Sorry Can not Performe'); - } - } - /** * To Moderate the commenting * @param type Comment $comment @@ -237,56 +202,61 @@ class SettingsController extends Controller { } } + /** + * get profile page + * @return type view + */ public function getProfile() { $time = Timezone::all(); $user = Auth::user(); return view('themes.default1.agent.kb.settings.profile', compact('user', 'time')); } + /** + * Post profile page + * @param type ProfileRequest $request + * @return type redirect + */ public function postProfile(ProfileRequest $request) { $user = Auth::user(); $user->gender = $request->input('gender'); $user->save(); - if (is_null($user->profile_pic)) { if ($request->input('gender') == 1) { - $name = 'avatar5.png'; $destinationPath = 'lb-faveo/dist/img'; $user->profile_pic = $name; } elseif ($request->input('gender') == 0) { - $name = 'avatar2.png'; $destinationPath = 'lb-faveo/dist/img'; $user->profile_pic = $name; } } - if (Input::file('profile_pic')) { //$extension = Input::file('profile_pic')->getClientOriginalExtension(); $name = Input::file('profile_pic')->getClientOriginalName(); - $destinationPath = 'lb-faveo/dist/img'; $fileName = rand(0000, 9999) . '.' . $name; //echo $fileName; - Input::file('profile_pic')->move($destinationPath, $fileName); - $user->profile_pic = $fileName; - } else { $user->fill($request->except('profile_pic', 'gender'))->save(); return redirect()->back()->with('success1', 'Profile Updated sucessfully'); - } - if ($user->fill($request->except('profile_pic'))->save()) { return redirect('profile')->with('success1', 'Profile Updated sucessfully'); } else { return redirect('profile')->with('fails1', 'Profile Not Updated sucessfully'); } - } + + /** + * post profile password + * @param type $id + * @param type ProfilePassword $request + * @return type redirect + */ public function postProfilePassword($id, ProfilePassword $request) { $user = Auth::user(); //echo $user->password; @@ -299,81 +269,12 @@ class SettingsController extends Controller { return redirect('profile')->with('fails2', 'Old password Wrong'); } - } - /** - * To delete the logo - * @param type $id - * @param type Settings $setting - * @return type - */ - public function deleteLogo($id, Settings $setting) { - $setting = $setting->whereId($id)->first(); - $setting->logo = ''; - $setting->save(); - return redirect('settings')->with('success', 'Settings Updated Successfully'); - - } - - public function deleteBackground($id, Settings $setting) { - $setting = $setting->whereId($id)->first(); - $setting->background = ''; - $setting->save(); - return redirect('settings')->with('success', 'Settings Updated Successfully'); - } /** - * Get the View of create Side widget page - * @param type Side1 $side - * @return View + * het locale for language + * @return type config set */ - public function side1(Side1 $side) { - $side = $side->where('id', '1')->first(); - return view('themes.default1.agent.kb.settings.side1', compact('side')); - } - - /** - * Post function of Side1 Page - * @param type $id - * @param type Side1 $side - * @param type Request $request - * @return view - */ - public function postside1($id, Side1 $side, Request $request) { - $side = $side->whereId($id)->first(); - if ($side->fill($request->input())->save()) { - return redirect('side1')->with('success', 'Side Widget 1 Created !'); - } else { - return redirect('side1')->with('fails', 'Whoops ! Something went Wrong ! '); - } - } - - /** - * Get the View for side widget creat - * @param type Side2 $side - * @return type - */ - public function side2(Side2 $side) { - $side = $side->where('id', '1')->first(); - return view('themes.default1.agent.kb.settings.side2', compact('side')); - } - - /** - * Post functio for side - * @param type $id - * @param type Side2 $side - * @param type Request $request - * @return response - */ - public function postside2($id, Side2 $side, Request $request) { - $side = $side->whereId($id)->first(); - if ($side->fill($request->input())->save()) { - return redirect('side2')->with('success', 'Side Widget 2 Created !'); - } else { - return redirect('side2')->with('fails', 'Whoops ! Something went Wrong ! '); - } - } - static function language() { // $set = Settings::whereId(1)->first(); // $lang = $set->language; diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 9b023a135..c3f8ea36a 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -1,24 +1,22 @@ middleware('guest', ['except' => 'getLogout']); } - - /** * Get the form for registration * @return type Response @@ -78,7 +74,6 @@ class AuthController extends Controller { } } - /** * Post registration form * @param type User $user @@ -148,26 +143,19 @@ class AuthController extends Controller { * @return type Response */ public function postLogin(LoginRequest $request) { - // Set login attempts and login time $loginAttempts = 1; - $credentials = $request->only('email', 'password'); - - $email = $request->email; - // $ip_address = $_SERVER['REMOTE_ADDR']; - - // $limit_login = Limit_Login::where('email' , '=' , $email)->where('ip_address', '=', $ip_address)->first(); - // if(isset($limit_login)) { - - // } - - - + $usernameinput = $request->input('email'); + $password = $request->input('password'); + $field = filter_var($usernameinput, FILTER_VALIDATE_EMAIL) ? 'email' : 'user_name'; // If session has login attempts, retrieve attempts counter and attempts time if (\Session::has('loginAttempts')) { $loginAttempts = \Session::get('loginAttempts'); $loginAttemptTime = \Session::get('loginAttemptTime'); - $credentials = $request->only('email', 'password'); + // $credentials = $request->only('email', 'password'); + $usernameinput = $request->input('email'); + $password = $request->input('password'); + $field = filter_var($usernameinput, FILTER_VALIDATE_EMAIL) ? 'email' : 'user_name'; // If attempts > 3 and time < 10 minutes if ($loginAttempts > 4 && (time() - $loginAttemptTime <= 600)) { return redirect()->back()->with('error', 'Maximum login attempts reached. Try again in a while'); @@ -177,14 +165,13 @@ class AuthController extends Controller { \Session::put('loginAttempts', 1); \Session::put('loginAttemptTime', time()); } - } else // If no login attempts stored, init login attempts and time - { + } else { // If no login attempts stored, init login attempts and time \Session::put('loginAttempts', $loginAttempts); \Session::put('loginAttemptTime', time()); } // If auth ok, redirect to restricted area \Session::put('loginAttempts', $loginAttempts + 1); - if ($this->auth->attempt($credentials, $request->has('remember'))) { + if ($this->auth->attempt([$field => $usernameinput, 'password' => $password], $request->has('remember'))) { if(Auth::user()->role == 'user') { return \Redirect::route('/'); } else { @@ -208,100 +195,4 @@ class AuthController extends Controller { return 'This Field do not match our records.'; } - - // public function postLogin(LoginRequest $request) { - // $email = $request->input('email'); - // $counter = 0; - // $user = User::where('email','=',$email)->first(); - // if($user) { - // if($user->active == 1) { - // $credentials = $request->only('email', 'password'); - - // while($counter < 10) { - // if($this->auth->attempt($credentials) === false) { - // $counter++; - // } - // } - // if ($this->auth->attempt($credentials, $request->has('remember'))) { - // if(Auth::user()) { - // if(Auth::user()->role == 'vendor') { - // return \Redirect::route('vendors.index'); - // } elseif(Auth::user()->role == 'admin') { - // return \Redirect::route('admin.dashboard'); - // } elseif(Auth::user()->role == 'sadmin') { - // return \Redirect::route('sadmin.dashboard'); - // } else { - // return redirect()->intended($this->redirectPath()); - // } - // } else { - // return redirect()->back()->with('message','Account Inactive, Please wait for Admin to approve.'); - // } - // } - // } else { - // return redirect()->back()->with('message','Account Inactive, Please wait for Admin to approve.'); - // } - // } - // return redirect($this->loginPath()) - // ->withInput($request->only('email', 'remember')) - // ->withErrors(['email' => $this->getFailedLoginMessage(), 'password' => $this->getFailedLoginMessage(), ]); - - // } - - - - - // public function authenticate() { - // // Set login attempts and login time - // $loginAttempts = 1; - // // If session has login attempts, retrieve attempts counter and attempts time - // if (Session::has('loginAttempts')) { - // $loginAttempts = Session::get('loginAttempts'); - // $loginAttemptTime = Session::get('loginAttemptTime'); - // // If attempts > 3 and time < 10 minutes - // if ($loginAttempts > 3 && (time() - $loginAttemptTime <= 600)) { - // return redirect()-back()->with('error', 'maximum login attempts reached. Try again in a while'); - // } - // // If time > 10 minutes, reset attempts counter and time in session - // if (time() - $loginAttemptTime > 600) { - // Session::put('loginAttempts', 1); - // Session::put('loginAttemptTime', time()); - // } - // } else // If no login attempts stored, init login attempts and time - // { - // Session::put('loginAttempts', $loginAttempts); - // Session::put('loginAttemptTime', time()); - // } - // // If auth ok, redirect to restricted area - // if (Auth::attempt(['email' => 'someone@example.com'])) { - // return redirect()->intended('dashboard'); - // } - // // Increment login attempts - // Session::put('loginAttempts', $loginAttempts + 1); - // } - - - - // public function postLogin(LoginRequest $request) { - // // $email = $request->input('email'); - // // $password = Hash::make($request->input('password')); - // // $remember = $request->input('remember'); - // // dd([$email,$password,$remember]); - // $credentials = $request->only('email', 'password'); - // if ($this->auth->attempt($credentials, $request->has('remember'))) { - // if(Auth::user()->role == 'user') { - // return \Redirect::route('home'); - // } else { - // return redirect()->intended($this->redirectPath()); - // } - // } - // return redirect($this->loginPath()) - // ->withInput($request->only('email', 'remember')) - // ->withErrors([ - // 'email' => $this->getFailedLoginMessage(), - // 'password' => $this->getFailedLoginMessage(), - // ]); - // } - - - } \ No newline at end of file diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php index 8512935c8..e4cfe03cd 100644 --- a/app/Http/Controllers/Auth/PasswordController.php +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -1,17 +1,20 @@ input('comment'); if($comment != null) { $tickets = Tickets::where('id','=',$id)->first(); + $tickets->closed_at = null; + $tickets->closed = 0; + $tickets->reopened_at = date('Y-m-d H:i:s'); + $tickets->reopened = 1; $threads = new Ticket_Thread; $threads->user_id = Auth::user()->id; $threads->ticket_id = $tickets->id; $threads->poster = "client"; $threads->body = $comment; - $threads->save(); - return \Redirect::back()->with('success1','Successfully replied'); + try { + $threads->save(); + $tickets->save(); + return \Redirect::back()->with('success1','Successfully replied'); + } catch(Exception $e) { + return \Redirect::back()->with('fails1',$e->errorInfo[2]); + } } else { return \Redirect::back()->with('fails1','Please fill some data!'); } - - } } diff --git a/app/Http/Controllers/Client/helpdesk/EmailController.php b/app/Http/Controllers/Client/helpdesk/EmailController.php index c13e6491c..def14022d 100644 --- a/app/Http/Controllers/Client/helpdesk/EmailController.php +++ b/app/Http/Controllers/Client/helpdesk/EmailController.php @@ -1,9 +1,13 @@ first(); $portvalue = $port->option_value; - return $portvalue; } @@ -36,7 +39,6 @@ class OuthouseController extends Controller { { $host=Option::where('option_name','=','host')->first(); $hostvalue=$host->option_value; - return $hostvalue; } diff --git a/app/Http/Controllers/Client/helpdesk/FormController.php b/app/Http/Controllers/Client/helpdesk/FormController.php index 21d38ba43..bafa226fa 100644 --- a/app/Http/Controllers/Client/helpdesk/FormController.php +++ b/app/Http/Controllers/Client/helpdesk/FormController.php @@ -1,21 +1,18 @@ TicketController = $TicketController; } - // /** - // * This Function to get the form for the ticket - // * @param type Form_name $name - // * @param type Form_details $details - // * @param type Help_topic $topics - // * @return type Response - // */ - // public function getForm() { - // if(Config::get('database.install') == '%0%') { - // return Redirect::route('license'); - // } - // if(System::first()->status == 1) { - // return view('themes.default1.client.helpdesk.guest-user.form'); - // } else { - // return "hello"; - // } - // } - /** * getform * @param type Help_topic $topic @@ -92,7 +78,7 @@ class FormController extends Controller { * @param type Form_details $details * @return type string */ - public function postForm($id,Form_name $name, Form_details $details, Help_topic $topic) { + public function postForm($id, Help_topic $topic) { // dd($id); if($id != 0 ){ $helptopic = $topic->where('id', '=', $id)->first(); @@ -163,8 +149,9 @@ class FormController extends Controller { $source = $ticket_source->where('name','=','web')->first(); $collaborator = null; + $assignto = null; - if($this->TicketController->create_user($email, $name, $subject, $details, $phone, $helptopic, $sla, $priority, $source->id, $collaborator, $department,$assignto = "", $form_extras)) { + if($this->TicketController->create_user($email, $name, $subject, $details, $phone, $helptopic, $sla, $priority, $source->id, $collaborator, $department,$assignto, $form_extras)) { return Redirect::route('guest.getform')->with('success','Ticket Created Successfully'); } } @@ -181,12 +168,21 @@ class FormController extends Controller { if($comment != null) { $tickets = Tickets::where('id','=',$id)->first(); $threads = new Ticket_Thread; + $tickets->closed_at = null; + $tickets->closed = 0; + $tickets->reopened_at = date('Y-m-d H:i:s'); + $tickets->reopened = 1; $threads->user_id = $tickets->user_id; $threads->ticket_id = $tickets->id; $threads->poster = "client"; $threads->body = $comment; - $threads->save(); - return \Redirect::back()->with('success1','Successfully replied'); + try { + $threads->save(); + $tickets->save(); + return \Redirect::back()->with('success1','Successfully replied'); + } catch(Exception $e) { + return \Redirect::back()->with('fails1',$e->errorInfo[2]); + } } else { return \Redirect::back()->with('fails1','Please fill some data!'); } diff --git a/app/Http/Controllers/Client/helpdesk/GuestController.php b/app/Http/Controllers/Client/helpdesk/GuestController.php index 9d9fb3fdb..951e2d470 100644 --- a/app/Http/Controllers/Client/helpdesk/GuestController.php +++ b/app/Http/Controllers/Client/helpdesk/GuestController.php @@ -1,12 +1,15 @@ middleware('auth'); - // $this->middleware('role.user'); } /** @@ -160,8 +166,12 @@ class GuestController extends Controller { //echo $user->password; if (Hash::check($request->input('old_password'), $user->getAuthPassword())) { $user->password = Hash::make($request->input('new_password')); - $user->save(); - return redirect()->back()->with('success2', 'Password Updated sucessfully'); + try{ + $user->save(); + return redirect()->back()->with('success2', 'Password Updated sucessfully'); + } catch (Exception $e) { + return redirect()->back()->with('fails2', $e->errorInfo[2]); + } } else { return redirect()->back()->with('fails2', 'Password was not Updated. Incorrect old password'); } diff --git a/app/Http/Controllers/Client/helpdesk/WelcomepageController.php b/app/Http/Controllers/Client/helpdesk/WelcomepageController.php index 6151a8629..f8a704e35 100644 --- a/app/Http/Controllers/Client/helpdesk/WelcomepageController.php +++ b/app/Http/Controllers/Client/helpdesk/WelcomepageController.php @@ -6,6 +6,7 @@ use App\Model\helpdesk\Settings\System; // classes use Config; use Redirect; +use Exception; /** * OuthouseController diff --git a/app/Http/Controllers/Client/kb/UserController.php b/app/Http/Controllers/Client/kb/UserController.php index 568ad1dee..bc3524110 100644 --- a/app/Http/Controllers/Client/kb/UserController.php +++ b/app/Http/Controllers/Client/kb/UserController.php @@ -20,6 +20,7 @@ use Mail; use Auth; use Redirect; use Hash; +use Exception; class UserController extends Controller { diff --git a/app/Http/Controllers/Common/SettingsController.php b/app/Http/Controllers/Common/SettingsController.php index 2d0549bc0..45f755ee4 100644 --- a/app/Http/Controllers/Common/SettingsController.php +++ b/app/Http/Controllers/Common/SettingsController.php @@ -6,18 +6,16 @@ use Illuminate\Http\Request; use App\Http\Requests\helpdesk\SmtpRequest; use App\Http\Requests; // models -use App\Model\helpdesk\Theme\Footer2; -use App\Model\helpdesk\Theme\Footer3; -use App\Model\helpdesk\Theme\Footer4; -use App\Model\helpdesk\Theme\Footer; +use App\Model\helpdesk\Theme\Widgets; use App\Model\helpdesk\Email\Smtp; use App\Model\helpdesk\Utility\Version_Check; +use App\Model\helpdesk\Settings\Plugin; // classes use Config; use Input; use Crypt; use Illuminate\Support\Collection; -use App\Model\helpdesk\Settings\Plugin; +use Exception; /** * *************************** @@ -45,13 +43,144 @@ class SettingsController extends Controller { SettingsController::password(); } + /** * get the page to create the footer * @return response */ - public function CreateFooter(Footer $footer) { - $footer = $footer->whereId('1')->first(); - return view('themes.default1.admin.helpdesk.theme.footer', compact('footer')); + public function widgets() { + return view('themes.default1.admin.helpdesk.theme.widgets'); + } + + /** + * get the page to create the footer + * @return response + */ + public function list_widget() { + return \Datatable::collection(Widgets::where('id','<','7')->get()) + ->searchColumns('name') + ->orderColumns('name', 'title', 'value') + ->addColumn('name', function ($model) { + return $model->name; + }) + + ->addColumn('title', function ($model) { + return $model->title; + }) + + ->addColumn('body', function ($model) { + return $model->value; + }) + + ->addColumn('Actions', function ($model) { + return '' . \Lang::get('lang.edit') . ' + '; + }) + + ->make(); + } + + + /** + * Post footer + * @param type Footer $footer + * @param type Request $request + * @return type response + */ + public function edit_widget($id, Widgets $widgets, Request $request) { + $widget = $widgets->where('id','=',$id)->first(); + $widget->title = $request->title; + $widget->value = $request->content; + try{ + $widget->save(); + return redirect()->back()->with('success', $widget->name.' Saved Successfully'); + } catch(Exception $e) { + return redirect()->back()->with('fails', $e->errorInfo[2]); + } + } + + /** + * get the page to create the footer + * @return response + */ + public function social_buttons() { + return view('themes.default1.admin.helpdesk.theme.social'); + } + + /** + * get the page to create the footer + * @return response + */ + public function list_social_buttons() { + return \Datatable::collection(Widgets::where('id','>','6')->get()) + ->searchColumns('name') + ->orderColumns('name', 'value') + ->addColumn('name', function ($model) { + return $model->name; + }) + + ->addColumn('link', function ($model) { + return $model->value; + }) + + ->addColumn('Actions', function ($model) { + return '' . \Lang::get('lang.edit') . ' + '; + }) + ->make(); } /** @@ -60,84 +189,15 @@ class SettingsController extends Controller { * @param type Request $request * @return type response */ - public function PostFooter(Footer $footer, Request $request) { - $footer = $footer->whereId('1')->first(); - if ($footer->fill($request->input())->save()) { - return redirect('create-footer')->with('success', 'Footer Saved Successfully'); - } else { - return redirect('create-footer')->with('fails', 'Footer was not Saved'); - } - } - - /** - * get the page to create the footer - * @return response - */ - public function CreateFooter2(Footer2 $footer2) { - $footer2 = $footer2->whereId('1')->first(); - return view('themes.default1.admin.helpdesk.theme.footer2', compact('footer2')); - } - - /** - * Post footer 2 - * @param type Footer $footer - * @param type Request $request - * @return type response - */ - public function PostFooter2(Footer2 $footer2, Request $request) { - $footer2 = $footer2->whereId('1')->first(); - if ($footer2->fill($request->input())->save()) { - return redirect('create-footer2')->with('success', 'Footer Saved Successfully'); - } else { - return redirect('create-footer2')->with('fails', 'Footer was not Saved'); - } - } - - /** - * get the page to create the footer - * @return response - */ - public function CreateFooter3(Footer3 $footer3) { - $footer3 = $footer3->whereId('1')->first(); - return view('themes.default1.admin.helpdesk.theme.footer3', compact('footer3')); - } - - /** - * Post footer 3 - * @param type Footer $footer - * @param type Request $request - * @return type response - */ - public function PostFooter3(Footer3 $footer3, Request $request) { - $footer3 = $footer3->whereId('1')->first(); - if ($footer3->fill($request->input())->save()) { - return redirect('create-footer3')->with('success', 'Footer Saved Successfully'); - } else { - return redirect('create-footer3')->with('fails', 'Footer was not Saved'); - } - } - - /** - * get the page to create the footer - * @return response - */ - public function CreateFooter4(Footer4 $footer4) { - $footer4 = $footer4->whereId('1')->first(); - return view('themes.default1.admin.helpdesk.theme.footer4', compact('footer4')); - } - - /** - * Post footer 4 - * @param type Footer $footer - * @param type Request $request - * @return type response - */ - public function PostFooter4(Footer4 $footer4, Request $request) { - $footer4 = $footer4->whereId('1')->first(); - if ($footer4->fill($request->input())->save()) { - return redirect('create-footer4')->with('success', 'Footer Saved Successfully'); - } else { - return redirect('create-footer4')->with('fails', 'Footer was not Saved'); + public function edit_social_buttons($id, Widgets $widgets, Request $request) { + $widget = $widgets->where('id','=',$id)->first(); + $widget->title = $request->title; + $widget->value = $request->content; + try{ + $widget->save(); + return redirect()->back()->with('success', $widget->name.' Saved Successfully'); + } catch (Exception $e) { + return redirect()->back()->with('fails',$e->errorInfo[2]); } } @@ -236,10 +296,11 @@ class SettingsController extends Controller { $data->name = $request->input('name'); $data->email = $request->input('email'); $data->password = Crypt::encrypt($request->input('password')); - if ($data->save()) { + try{ + $data->save(); return \Redirect::route('getsmtp')->with('success', 'success'); - } else { - return \Redirect::route('getsmtp')->with('fails', 'fails'); + } catch (Exception $e) { + return \Redirect::route('getsmtp')->with('fails', $e->errorInfo[2]); } } @@ -282,7 +343,11 @@ class SettingsController extends Controller { $pass = $request->input('password'); $password = Crypt::encrypt($pass); $settings->password = $password; - $settings->save(); + try{ + $settings->save(); + } catch(Exception $e) { + return redirect()->back()->with('fails', $e->errorInfo[2]); + } if (Input::file('logo')) { $name = Input::file('logo')->getClientOriginalName(); $destinationPath = 'dist/logo'; @@ -291,8 +356,12 @@ class SettingsController extends Controller { $settings->logo = $fileName; $settings->save(); } - $settings->fill($request->except('logo', 'password'))->save(); - return redirect()->back()->with('success', 'Settings updated Successfully'); + try { + $settings->fill($request->except('logo', 'password'))->save(); + return redirect()->back()->with('success', 'Settings updated Successfully'); + } catch (Exception $e) { + return redirect()->back()->with('fails', $e->errorInfo[2]); + } } /** @@ -300,9 +369,7 @@ class SettingsController extends Controller { * @return type */ public function version_check() { - $response_url = \URL::route('post-version-check'); - echo "
    "; echo ""; echo ""; @@ -317,23 +384,20 @@ class SettingsController extends Controller { * @return type */ public function post_version_check(Request $request) { - $current_version = \Config::get('app.version'); - $new_version = $request->value; - if ($current_version == $new_version) { -// echo "No, new Updates"; + // echo "No, new Updates"; return redirect()->route('checkupdate')->with('info', ' No, new Updates'); } elseif ($current_version < $new_version) { $version = Version_Check::where('id', '=', '1')->first(); $version->current_version = $current_version; $version->new_version = $new_version; $version->save(); -// echo "Version " . $new_version . " is Available"; + // echo "Version " . $new_version . " is Available"; return redirect()->route('checkupdate')->with('info', ' Version ' . $new_version . ' is Available'); } else { -// echo "Error Checking Version"; + // echo "Error Checking Version"; return redirect()->route('checkupdate')->with('info', ' Error Checking Version'); } } @@ -348,8 +412,6 @@ class SettingsController extends Controller { public function GetPlugin() { $plugins = $this->fetchConfig(); - //dd($plugins); - return \Datatable::collection(new Collection($plugins)) ->searchColumns('name') @@ -420,14 +482,11 @@ class SettingsController extends Controller { */ public function PostPlugins(Request $request) { $v = $this->validate($request, ['plugin' => 'required|mimes:application/zip,zip,Zip']); - $plug = new Plugin(); $file = $request->file('plugin'); //dd($file); $destination = app_path() . '/Plugins'; $zipfile = $file->getRealPath(); - - /** * get the file name and remove .zip */ @@ -498,28 +557,23 @@ class SettingsController extends Controller { if (!file_exists($dir)) { return true; } - if (!is_dir($dir)) { return unlink($dir); } - foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') { continue; } - if (!$this->deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) { return false; } } - return rmdir($dir); } public function ReadConfigs() { $dir = app_path() . '/Plugins/'; $files = array_diff(scandir($dir), array('.', '..', 'ServiceProvider.php')); - $plugins = array(); if ($files) { foreach ($files as $key => $file) { @@ -528,13 +582,10 @@ class SettingsController extends Controller { $plugins[$key]['file'] = $plugin; } foreach ($plugins as $plugin) { - $dir = $plugin['file']; //opendir($dir); if ($dh = opendir($dir)) { - while (($file = readdir($dh)) !== false) { - if ($file == 'config.php') { $config[] = $dir . '/' . $file; } @@ -542,7 +593,6 @@ class SettingsController extends Controller { closedir($dh); } } - return $config; } else { return 'null'; @@ -562,9 +612,7 @@ class SettingsController extends Controller { $fields[$key]['path'] = $plug[$key]['path']; $fields[$key]['status'] = $plug[$key]['status']; } - //dd($fields); } - return $fields; } else { return array(); @@ -572,21 +620,16 @@ class SettingsController extends Controller { } public function DeletePlugin($slug) { - $dir = app_path() . '/Plugins/' . $slug; $this->deleteDirectory($dir); - /** * remove service provider from app.php */ $str = "'App\\Plugins\\$slug" . "\\ServiceProvider',"; $path_to_file = base_path() . '/config/app.php'; - $file_contents = file_get_contents($path_to_file); $file_contents = str_replace($str, "//", $file_contents); file_put_contents($path_to_file, $file_contents); - - $plugin = new Plugin(); $plugin = $plugin->where('path', $slug)->first(); $plugin->delete(); diff --git a/app/Http/Controllers/Installer/helpdesk/InstallController.php b/app/Http/Controllers/Installer/helpdesk/InstallController.php index 955356555..6996abaa8 100644 --- a/app/Http/Controllers/Installer/helpdesk/InstallController.php +++ b/app/Http/Controllers/Installer/helpdesk/InstallController.php @@ -1,12 +1,16 @@ input('date'); $datetime = $request->input('datetime'); - $system = System::where('id','=','1')->first(); - $system->time_zone = $timezone; - $system->date_time_format = $datetime; - $system->save(); - - $form1 = new Form_details; - $form1->label = 'Name'; - $form1->type = 'text'; - $form1->form_name_id = '1'; - $form1->save(); - - $form2 = new Form_details; - $form2->label = 'Phone'; - $form2->type = 'number'; - $form2->form_name_id = '1'; - $form2->save(); - - $form3 = new Form_details; - $form3->label = 'Email'; - $form3->type = 'text'; - $form3->form_name_id = '1'; - $form3->save(); - - $form4 = new Form_details; - $form4->label = 'Subject'; - $form4->type = 'text'; - $form4->form_name_id = '1'; - $form4->save(); - - $form5 = new Form_details; - $form5->label = 'Details'; - $form5->type = 'textarea'; - $form5->form_name_id = '1'; - $form5->save(); + // $system = System::where('id','=','1')->first(); + // $system->time_zone = $timezone; + // $system->date_time_format = $datetime; + // $system->save(); + // creating an user $user = User::create(array( 'first_name' => $firstname, 'last_name' => $lastname, 'email' => $email, 'user_name' => $username, 'password' => Hash::make($password), + 'assign_group' => 1, + 'primary_dpt' => 1, 'active' => 1, 'role' => 'admin', - 'assign_group' => 'group A', - 'primary_dpt' => 'support', )); - + // checking if the user have been created if ($user) { Session::put('step6', 'step6'); return Redirect::route('final'); @@ -326,19 +313,19 @@ class InstallController extends Controller { * @return type view */ public function finalize() { + // checking if the installation have been completed or not if (Session::get('step6') == 'step6') { $value = '1'; $install = app_path('../config/database.php'); $datacontent = File::get($install); $datacontent = str_replace('%0%', $value, $datacontent); File::put($install, $datacontent); - + // setting email settings in route $smtpfilepath = "\App\Http\Controllers\Common\SettingsController::smtp()"; $path22 = app_path('Http/routes.php'); $content23 = File::get($path22); $content23 = str_replace('"%smtplink%"', $smtpfilepath, $content23); File::put($path22, $content23); - try { return View::make('themes/default1/installer/helpdesk/view6'); } catch (Exception $e) { diff --git a/app/Http/Middleware/CheckRoleAgent.php b/app/Http/Middleware/CheckRoleAgent.php index db58b46f5..89a1a4202 100644 --- a/app/Http/Middleware/CheckRoleAgent.php +++ b/app/Http/Middleware/CheckRoleAgent.php @@ -1,5 +1,4 @@ - 'required', 'last_name' => 'required', 'email' => 'required', - 'account_type' => 'required', + 'active' => 'required', // 'account_status' => 'required', 'assign_group' => 'required', 'primary_dpt' => 'required', diff --git a/app/Http/Requests/helpdesk/AgentUpdate.php b/app/Http/Requests/helpdesk/AgentUpdate.php index 867081533..2085e96f6 100644 --- a/app/Http/Requests/helpdesk/AgentUpdate.php +++ b/app/Http/Requests/helpdesk/AgentUpdate.php @@ -28,7 +28,7 @@ class AgentUpdate extends Request { 'first_name' => 'required', 'last_name' => 'required', 'email' => 'required|email', - 'account_type' => 'required', + 'active' => 'required', 'role' => 'required', 'assign_group' => 'required', 'primary_dpt' => 'required', diff --git a/app/Http/Requests/helpdesk/BanRequest.php b/app/Http/Requests/helpdesk/BanRequest.php index 4e44a7646..69a1f511b 100644 --- a/app/Http/Requests/helpdesk/BanRequest.php +++ b/app/Http/Requests/helpdesk/BanRequest.php @@ -25,7 +25,7 @@ class BanRequest extends Request { */ public function rules() { return [ - 'email' => 'required|email|unique:users', + 'email' => 'required|email', 'ban' => 'required', ]; } diff --git a/app/Http/Requests/helpdesk/EmailsEditRequest.php b/app/Http/Requests/helpdesk/EmailsEditRequest.php index 58b54afec..f678ee5dd 100644 --- a/app/Http/Requests/helpdesk/EmailsEditRequest.php +++ b/app/Http/Requests/helpdesk/EmailsEditRequest.php @@ -32,7 +32,7 @@ class EmailsEditRequest extends Request { 'help_topic' => 'required', // 'imap_config' => 'required', 'password' => 'required|min:6', - 'user_name' => 'required', + // 'user_name' => 'required', // 'sending_host' => 'required', // 'sending_port' => 'required', //'mailbox_protocol' => 'required' diff --git a/app/Http/Requests/helpdesk/EmailsRequest.php b/app/Http/Requests/helpdesk/EmailsRequest.php index 579577a2b..9e76d34f3 100644 --- a/app/Http/Requests/helpdesk/EmailsRequest.php +++ b/app/Http/Requests/helpdesk/EmailsRequest.php @@ -32,7 +32,7 @@ class EmailsRequest extends Request { 'help_topic' => 'required', // 'imap_config' => 'required', 'password' => 'required|min:6', - 'user_name' => 'required', + // 'user_name' => 'required', // 'sending_host' => 'required', // 'sending_port' => 'required', 'fetching_host' => 'required', diff --git a/app/Http/Requests/helpdesk/LoginRequest.php b/app/Http/Requests/helpdesk/LoginRequest.php index 853331ec0..85cbf6b65 100644 --- a/app/Http/Requests/helpdesk/LoginRequest.php +++ b/app/Http/Requests/helpdesk/LoginRequest.php @@ -25,7 +25,7 @@ class LoginRequest extends Request { */ public function rules() { return [ - 'email' => 'required|email', + 'email' => 'required', 'password' => 'required|min:6', ]; } diff --git a/app/Http/Requests/kb/ArticleRequest.php b/app/Http/Requests/kb/ArticleRequest.php index efe9f37d8..581924660 100644 --- a/app/Http/Requests/kb/ArticleRequest.php +++ b/app/Http/Requests/kb/ArticleRequest.php @@ -21,7 +21,7 @@ class ArticleRequest extends Request { public function rules() { return [ 'name' => 'required', - 'slug' => 'required|unique:article', + 'slug' => 'required|unique:kb_article', 'description' => 'required', 'category_id' => 'required', ]; diff --git a/app/Http/Requests/kb/CategoryRequest.php b/app/Http/Requests/kb/CategoryRequest.php index affd55cbb..3f44b25ae 100644 --- a/app/Http/Requests/kb/CategoryRequest.php +++ b/app/Http/Requests/kb/CategoryRequest.php @@ -21,7 +21,7 @@ class CategoryRequest extends Request { public function rules() { return [ 'name' => 'required', - 'slug' => 'required|unique:category', + 'slug' => 'required|unique:kb_category', 'description' => 'required', ]; diff --git a/app/Http/Requests/kb/PageRequest.php b/app/Http/Requests/kb/PageRequest.php index 6be958f5d..743b5b8b2 100644 --- a/app/Http/Requests/kb/PageRequest.php +++ b/app/Http/Requests/kb/PageRequest.php @@ -21,7 +21,7 @@ class PageRequest extends Request { public function rules() { return [ 'name' => 'required', - 'slug' => 'required|unique:pages', + 'slug' => 'required|unique:kb_pages', //'description' => 'required', ]; diff --git a/app/Http/routes.php b/app/Http/routes.php index f6b7b961e..73191cb9a 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -111,22 +111,18 @@ Route::group(['middleware' => 'roles', 'middleware' => 'auth'], function () { Route::patch('admin-profile-password', 'Admin\helpdesk\ProfileController@postProfilePassword');/* Admin Profile Password Post */ - Route::get('create-footer', 'Common\SettingsController@CreateFooter');/* get the create footer page for admin */ + Route::get('widgets', 'Common\SettingsController@widgets');/* get the create footer page for admin */ + + Route::get('list-widget', 'Common\SettingsController@list_widget');/* get the list widget page for admin */ + + Route::post('edit-widget/{id}', 'Common\SettingsController@edit_widget');/* get the create footer page for admin */ + + Route::get('social-buttons', 'Common\SettingsController@social_buttons');/* get the create footer page for admin */ + + Route::get('list-social-buttons', 'Common\SettingsController@list_social_buttons');/* get the list widget page for admin */ + + Route::post('edit-widget/{id}', 'Common\SettingsController@edit_social_buttons');/* get the create footer page for admin */ - Route::patch('post-create-footer/{id}', 'Common\SettingsController@PostFooter');/* post footer to insert to database */ - - Route::get('create-footer2', 'Common\SettingsController@CreateFooter2');/* get the create footer page for admin */ - - Route::patch('post-create-footer2/{id}', 'Common\SettingsController@PostFooter2'); /* post footer to insert to database */ - - Route::get('create-footer3', 'Common\SettingsController@CreateFooter3'); /* get the create footer page for admin */ - - Route::patch('post-create-footer3/{id}', 'Common\SettingsController@PostFooter3'); /* post footer to insert to database */ - - Route::get('create-footer4', 'Common\SettingsController@CreateFooter4'); /* get the create footer page for admin */ - - Route::patch('post-create-footer4/{id}', 'Common\SettingsController@PostFooter4'); /* post footer to insert to database */ - Route::get('getsmtp',['as'=>'getsmtp','uses'=>'Common\SettingsController@getsmtp']); /* get the create footer page for admin */ Route::patch('post-smtp',['as'=>'post_smtp','uses'=>'Common\SettingsController@postsmtp']); /* post footer to insert to database */ @@ -151,9 +147,6 @@ Route::group(['middleware' => 'roles', 'middleware' => 'auth'], function () { Route::get('plugin/status/{slug}', array('as'=>'status.plugin', 'uses'=>'Common\SettingsController@StatusPlugin')); - - - //Routes for showing language table and switching language Route::get('languages',['as'=>'LanguageController','uses'=>'Admin\helpdesk\LanguageController@index']); @@ -183,11 +176,15 @@ Route::group(['middleware' => 'roles', 'middleware' => 'auth'], function () { */ Route::group(['middleware' => 'role.agent', 'middleware' => 'auth'], function () { + Route::get('agen1', 'Agent\helpdesk\DashboardController@ChartData'); + + Route::post('chart-range', ['as' => 'post.chart', 'uses' => 'Agent\helpdesk\DashboardController@ChartData']); + Route::resource('user', 'Agent\helpdesk\UserController'); /* User router is used to control the CRUD of user */ Route::get('user-list', ['as' => 'user.list' , 'uses' => 'Agent\helpdesk\UserController@user_list']); - Route::get('user/delete/{id}', ['as' => 'user.delete' , 'uses' => 'Agent\helpdesk\UserController@destroy']); + // Route::get('user/delete/{id}', ['as' => 'user.delete' , 'uses' => 'Agent\helpdesk\UserController@destroy']); Route::resource('organizations', 'Agent\helpdesk\OrganizationController'); /* organization router used to deal CRUD function of organization */ @@ -223,18 +220,30 @@ Route::group(['middleware' => 'role.agent', 'middleware' => 'auth'], function () Route::get('/ticket/inbox', ['as' => 'inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@inbox_ticket_list']); /* Get Inbox Ticket */ + Route::get('/ticket/get-inbox', ['as' => 'get.inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_inbox']); /* Get tickets in datatable */ + Route::get('/ticket/open', ['as' => 'open.ticket', 'uses' => 'Agent\helpdesk\TicketController@open_ticket_list']); /* Get Open Ticket */ + Route::get('/ticket/get-open', ['as' => 'get.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_open']); /* Get tickets in datatable */ + Route::get('/ticket/answered', ['as' => 'answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@answered_ticket_list']); /* Get Answered Ticket */ + Route::get('/ticket/get-answered', ['as' => 'get.answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_answered']); /* Get tickets in datatable */ + Route::get('/ticket/myticket', ['as' => 'myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@myticket_ticket_list']); /* Get Tickets Assigned to logged user */ + Route::get('/ticket/get-myticket', ['as' => 'get.myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_myticket']); /* Get tickets in datatable */ + Route::get('/ticket/overdue', ['as' => 'overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@overdue_ticket_list']); /* Get Overdue Ticket */ Route::get('/ticket/closed', ['as' => 'closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@closed_ticket_list']); /* Get Closed Ticket */ + Route::get('/ticket/get-closed', ['as' => 'get.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_closed']); /* Get tickets in datatable */ + Route::get('/ticket/assigned', ['as' => 'assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@assigned_ticket_list']); /* Get Assigned Ticket */ + Route::get('/ticket/get-assigned', ['as' => 'get.assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_assigned']); /* Get tickets in datatable */ + Route::get('/newticket', ['as' => 'newticket', 'uses' => 'Agent\helpdesk\TicketController@newticket']); /* Get Create New Ticket */ Route::post('/newticket/post', ['as' => 'post.newticket', 'uses' => 'Agent\helpdesk\TicketController@post_newticket']); /* Post Create New Ticket */ @@ -267,8 +276,12 @@ Route::group(['middleware' => 'role.agent', 'middleware' => 'auth'], function () Route::get('trash', 'Agent\helpdesk\TicketController@trash'); /* To show Deleted Tickets */ + Route::get('/ticket/trash', ['as' => 'get.trash.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_trash']); /* Get tickets in datatable */ + Route::get('unassigned', 'Agent\helpdesk\TicketController@unassigned'); /* To show Unassigned Tickets */ + Route::get('/ticket/unassigned', ['as' => 'get.unassigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_unassigned']); /* Get tickets in datatable */ + Route::get('dashboard', 'Agent\helpdesk\DashboardController@index'); /* To show dashboard pages */ Route::get('agen', 'Agent\helpdesk\DashboardController@ChartData'); @@ -489,14 +502,6 @@ $router->get('article/delete/{id}', 'Agent\kb\ArticleController@destroy'); $router->get('kb/settings', ['as'=>'settings' , 'uses'=> 'Agent\kb\SettingsController@settings']); /* post settings */ $router->patch('postsettings/{id}', 'Agent\kb\SettingsController@postSettings'); -/* get the create faq page */ -$router->get('create-faq',['as'=>'create-faq' , 'uses'=> 'Agent\kb\SettingsController@Faq'] ); -/* post faq */ -$router->patch('post-create-faq/{id}', 'Agent\kb\SettingsController@postfaq'); -/* get the create page for Social- link */ -$router->get('social',['as'=>'social' , 'uses'=> 'Agent\kb\SettingsController@CreateSocialLink']); -/* post Social - link for insert to database */ -$router->patch('postsocial',['as'=>'post-create-social' , 'uses'=> 'Agent\kb\SettingsController@PostSocial']); //Route for administrater to access the comment $router->get('comment',['as'=>'comment' , 'uses'=> 'Agent\kb\SettingsController@comment']); /* Route to define the comment should Published */ @@ -522,11 +527,6 @@ $router->get('get-categorys', ['as' => 'api.category', 'uses' => 'Agent\kb\Categ $router->get('get-comment', ['as' => 'api.comment', 'uses' => 'Agent\kb\SettingsController@getData']); $router->get('test', 'ArticleController@test'); -$router->get('side1', 'Agent\kb\SettingsController@side1'); -$router->patch('side1/{id}', 'Agent\kb\SettingsController@postside1'); - -$router->get('side2', 'Agent\kb\SettingsController@side2'); -$router->patch('side2/{id}', 'Agent\kb\SettingsController@postside2'); $router->post('image', 'Agent\kb\SettingsController@image'); $router->get('direct', function () { @@ -556,7 +556,7 @@ $router->get('category-list/{id}',['as'=>'categorylist' , 'uses'=>'Client\kb\Use /* get the home page */ $router->get('knowledgebase',['as'=>'home' , 'uses'=> 'Client\kb\UserController@home']); /* get the faq value to user */ -$router->get('faq',['as'=>'faq' , 'uses'=>'Client\kb\UserController@Faq'] ); +// $router->get('faq',['as'=>'faq' , 'uses'=>'Client\kb\UserController@Faq'] ); /* get the cantact page to user */ $router->get('contact',['as'=>'contact' , 'uses'=> 'Client\kb\UserController@contact']); /* post the cantact page to controller */ diff --git a/app/Model/helpdesk/Agent/Group_assign_department.php b/app/Model/helpdesk/Agent/Group_assign_department.php index 73a1e278d..f784c2f8f 100644 --- a/app/Model/helpdesk/Agent/Group_assign_department.php +++ b/app/Model/helpdesk/Agent/Group_assign_department.php @@ -6,6 +6,6 @@ class Group_assign_department extends Model { protected $table = 'group_assign_department'; - protected $fillable = ['group_id','id','department_id']; + protected $fillable = ['group_id','department_id']; } diff --git a/app/Model/helpdesk/Agent/Groups.php b/app/Model/helpdesk/Agent/Groups.php index 7a672192e..8b844caac 100644 --- a/app/Model/helpdesk/Agent/Groups.php +++ b/app/Model/helpdesk/Agent/Groups.php @@ -8,7 +8,7 @@ class Groups extends Model protected $fillable = [ 'name', 'group_status', 'can_create_ticket', 'can_edit_ticket', 'can_post_ticket', 'can_close_ticket', 'can_assign_ticket', - 'can_trasfer_ticket', 'can_delete_ticket', 'can_ban_email', + 'can_transfer_ticket', 'can_delete_ticket', 'can_ban_email', 'can_manage_canned', 'can_manage_faq', 'can_view_agent_stats', 'department_access', 'admin_notes' ]; diff --git a/app/Model/helpdesk/Form/Fields.php b/app/Model/helpdesk/Form/Fields.php index e096dd347..71105858e 100644 --- a/app/Model/helpdesk/Form/Fields.php +++ b/app/Model/helpdesk/Form/Fields.php @@ -4,7 +4,7 @@ use Illuminate\Database\Eloquent\Model; class Fields extends Model { - protected $table = 'fields'; + protected $table = 'custom_form_fields'; /** * The attributes that are mass assignable. @@ -12,4 +12,4 @@ class Fields extends Model { * @var array */ protected $fillable = ['forms_id','label','name', 'type', 'value','required']; -} +} \ No newline at end of file diff --git a/app/Model/helpdesk/Form/Forms.php b/app/Model/helpdesk/Form/Forms.php index 3169eb925..9426f04ee 100644 --- a/app/Model/helpdesk/Form/Forms.php +++ b/app/Model/helpdesk/Form/Forms.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class Forms extends Model { - protected $table = 'forms'; + protected $table = 'custom_forms'; /** * The attributes that are mass assignable. diff --git a/app/Model/helpdesk/Settings/Alert.php b/app/Model/helpdesk/Settings/Alert.php index 8f96c4354..5cf43d145 100644 --- a/app/Model/helpdesk/Settings/Alert.php +++ b/app/Model/helpdesk/Settings/Alert.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class Alert extends Model { /* Using alert_notice table */ - protected $table = 'alert_notice'; + protected $table = 'settings_alert_notice'; /* Set fillable fields in table */ protected $fillable = [ diff --git a/app/Model/helpdesk/Settings/Company.php b/app/Model/helpdesk/Settings/Company.php index 2bc3cf636..e1822e8e3 100644 --- a/app/Model/helpdesk/Settings/Company.php +++ b/app/Model/helpdesk/Settings/Company.php @@ -4,7 +4,7 @@ use Illuminate\Database\Eloquent\Model; class Company extends Model { - protected $table = 'company'; + protected $table = 'settings_company'; protected $fillable = [ 'company_name', 'website', 'phone', 'address', 'landing_page', 'offline_page', 'thank_page', 'logo','use_logo' diff --git a/app/Model/helpdesk/Settings/Email.php b/app/Model/helpdesk/Settings/Email.php index 55ed7e7a4..cc71d4dc1 100644 --- a/app/Model/helpdesk/Settings/Email.php +++ b/app/Model/helpdesk/Settings/Email.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class Email extends Model { /* Using Email table */ - protected $table = 'email'; + protected $table = 'settings_email'; /* Set fillable fields in table */ protected $fillable = [ 'id','template','sys_email','alert_email','admin_email','mta','email_fetching','strip', diff --git a/app/Model/helpdesk/Settings/Responder.php b/app/Model/helpdesk/Settings/Responder.php index 8ba1afc83..161e50279 100644 --- a/app/Model/helpdesk/Settings/Responder.php +++ b/app/Model/helpdesk/Settings/Responder.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class Responder extends Model { /* Using auto_response table */ - protected $table = 'auto_response'; + protected $table = 'settings_auto_response'; /* Set fillable fields in table */ protected $fillable = [ diff --git a/app/Model/helpdesk/Settings/System.php b/app/Model/helpdesk/Settings/System.php index 2fd9fd4f5..a071cf909 100644 --- a/app/Model/helpdesk/Settings/System.php +++ b/app/Model/helpdesk/Settings/System.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class System extends Model { /* Using System Table */ - protected $table = 'system'; + protected $table = 'settings_system'; protected $fillable = [ 'id','status','url','name','department','page_size','log_level','purge_log','name_format', diff --git a/app/Model/helpdesk/Settings/Ticket.php b/app/Model/helpdesk/Settings/Ticket.php index e507e1605..a28e37687 100644 --- a/app/Model/helpdesk/Settings/Ticket.php +++ b/app/Model/helpdesk/Settings/Ticket.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Model; class Ticket extends Model { /* Using Ticket table */ - protected $table = 'ticket_settings'; + protected $table = 'settings_ticket'; /* Set fillable fields in table */ protected $fillable = [ 'id','num_format','num_sequence','priority','sla','help_topic','max_open_ticket','collision_avoid', diff --git a/app/Model/helpdesk/Theme/Widgets.php b/app/Model/helpdesk/Theme/Widgets.php new file mode 100644 index 000000000..f429f3996 --- /dev/null +++ b/app/Model/helpdesk/Theme/Widgets.php @@ -0,0 +1,11 @@ +=5.3.0" + }, + "require-dev": { + "mockery/mockery": "dev-master", + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Chumper\\Zipper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache2" + ], + "authors": [ + { + "name": "Nils Plaschke", + "email": "github@nilsplaschke.de", + "homepage": "http://nilsplaschke.de", + "role": "Developer" + } + ], + "description": "This is a little neat helper for the ZipArchive methods with handy functions", + "homepage": "http://github.com/Chumper/zipper", + "keywords": [ + "archive", + "laravel", + "zip" + ], + "time": "2015-02-16 11:38:11" }, { "name": "classpreloader/classpreloader", @@ -305,16 +357,16 @@ }, { "name": "doctrine/inflector", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604" + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604", - "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", "shasum": "" }, "require": { @@ -326,7 +378,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -368,20 +420,20 @@ "singularize", "string" ], - "time": "2014-12-20 21:24:13" + "time": "2015-11-06 14:35:42" }, { "name": "dompdf/dompdf", - "version": "v0.6.1", + "version": "v0.6.2", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "cf7d8a0a27270418850cc7d7ea532159e5eeb3eb" + "reference": "cc06008f75262510ee135b8cbb14e333a309f651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/cf7d8a0a27270418850cc7d7ea532159e5eeb3eb", - "reference": "cf7d8a0a27270418850cc7d7ea532159e5eeb3eb", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/cc06008f75262510ee135b8cbb14e333a309f651", + "reference": "cc06008f75262510ee135b8cbb14e333a309f651", "shasum": "" }, "require": { @@ -409,11 +461,11 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2014-03-11 01:59:52" + "time": "2015-12-07 04:07:13" }, { "name": "filp/whoops", - "version": "1.1.7", + "version": "1.1.10", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", @@ -471,16 +523,16 @@ }, { "name": "giggsey/libphonenumber-for-php", - "version": "7.1.0", + "version": "7.2.2", "source": { "type": "git", "url": "https://github.com/giggsey/libphonenumber-for-php.git", - "reference": "75277038380dbeba6c915749add6c0d38edd3719" + "reference": "8b64ea2ecd4080f9ce75cf688dda0c4afedb6b64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/75277038380dbeba6c915749add6c0d38edd3719", - "reference": "75277038380dbeba6c915749add6c0d38edd3719", + "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/8b64ea2ecd4080f9ce75cf688dda0c4afedb6b64", + "reference": "8b64ea2ecd4080f9ce75cf688dda0c4afedb6b64", "shasum": "" }, "require": { @@ -530,7 +582,7 @@ "phonenumber", "validation" ], - "time": "2015-10-08 14:46:18" + "time": "2015-12-15 17:24:20" }, { "name": "illuminate/html", @@ -709,30 +761,30 @@ }, { "name": "jeremeamia/SuperClosure", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/jeremeamia/super_closure.git", - "reference": "b712f39c671e5ead60c7ebfe662545456aade833" + "reference": "29a88be2a4846d27c1613aed0c9071dfad7b5938" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/b712f39c671e5ead60c7ebfe662545456aade833", - "reference": "b712f39c671e5ead60c7ebfe662545456aade833", + "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/29a88be2a4846d27c1613aed0c9071dfad7b5938", + "reference": "29a88be2a4846d27c1613aed0c9071dfad7b5938", "shasum": "" }, "require": { - "nikic/php-parser": "~1.0", - "php": ">=5.4" + "nikic/php-parser": "^1.2|^2.0", + "php": ">=5.4", + "symfony/polyfill-php56": "^1.0" }, "require-dev": { - "codeclimate/php-test-reporter": "~0.1.2", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" } }, "autoload": { @@ -763,20 +815,20 @@ "serialize", "tokenizer" ], - "time": "2015-03-11 20:06:43" + "time": "2015-12-05 17:17:57" }, { "name": "laravel/framework", - "version": "v5.0.33", + "version": "v5.0.34", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b11c8ab88245f920b30e5f30e16b141ac8d461d3" + "reference": "98dbaafe8e2781f86b1b858f8610be0d7318b153" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b11c8ab88245f920b30e5f30e16b141ac8d461d3", - "reference": "b11c8ab88245f920b30e5f30e16b141ac8d461d3", + "url": "https://api.github.com/repos/laravel/framework/zipball/98dbaafe8e2781f86b1b858f8610be0d7318b153", + "reference": "98dbaafe8e2781f86b1b858f8610be0d7318b153", "shasum": "" }, "require": { @@ -889,20 +941,20 @@ "framework", "laravel" ], - "time": "2015-06-09 13:12:19" + "time": "2015-12-04 23:20:49" }, { "name": "league/flysystem", - "version": "1.0.15", + "version": "1.0.16", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "31525caf9e8772683672fefd8a1ca0c0736020f4" + "reference": "183e1a610664baf6dcd6fceda415baf43cbdc031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/31525caf9e8772683672fefd8a1ca0c0736020f4", - "reference": "31525caf9e8772683672fefd8a1ca0c0736020f4", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/183e1a610664baf6dcd6fceda415baf43cbdc031", + "reference": "183e1a610664baf6dcd6fceda415baf43cbdc031", "shasum": "" }, "require": { @@ -916,7 +968,7 @@ "mockery/mockery": "~0.9", "phpspec/phpspec": "^2.2", "phpspec/prophecy-phpunit": "~1.0", - "phpunit/phpunit": "~4.1" + "phpunit/phpunit": "~4.8" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -973,7 +1025,7 @@ "sftp", "storage" ], - "time": "2015-09-30 22:26:59" + "time": "2015-12-19 20:16:43" }, { "name": "monolog/monolog", @@ -1132,16 +1184,16 @@ }, { "name": "nesbot/carbon", - "version": "1.20.0", + "version": "1.21.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3" + "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bfd3eaba109c9a2405c92174c8e17f20c2b9caf3", - "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", + "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", "shasum": "" }, "require": { @@ -1149,12 +1201,12 @@ "symfony/translation": "~2.6|~3.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~4.0|~5.0" }, "type": "library", "autoload": { - "psr-0": { - "Carbon": "src" + "psr-4": { + "Carbon\\": "src/Carbon/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1175,20 +1227,20 @@ "datetime", "time" ], - "time": "2015-06-25 04:19:39" + "time": "2015-11-04 20:07:17" }, { "name": "nicolaslopezj/searchable", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/nicolaslopezj/searchable.git", - "reference": "8d97d2c97dc17bc0795220b11b9ce0769d7d9173" + "reference": "2d264e493a9a93396b9cfed0290802d5aab8f921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nicolaslopezj/searchable/zipball/8d97d2c97dc17bc0795220b11b9ce0769d7d9173", - "reference": "8d97d2c97dc17bc0795220b11b9ce0769d7d9173", + "url": "https://api.github.com/repos/nicolaslopezj/searchable/zipball/2d264e493a9a93396b9cfed0290802d5aab8f921", + "reference": "2d264e493a9a93396b9cfed0290802d5aab8f921", "shasum": "" }, "require": { @@ -1221,7 +1273,7 @@ "search", "searchable" ], - "time": "2015-10-28 02:46:28" + "time": "2015-12-01 17:37:59" }, { "name": "nikic/php-parser", @@ -1304,25 +1356,26 @@ }, { "name": "php-imap/php-imap", - "version": "2.0.3", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/barbushin/php-imap.git", - "reference": "cc1a49a3f68090db182183c59ffbc09055d59f5b" + "reference": "3174b23aaf45cc570972209f366c384f257399a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barbushin/php-imap/zipball/cc1a49a3f68090db182183c59ffbc09055d59f5b", - "reference": "cc1a49a3f68090db182183c59ffbc09055d59f5b", + "url": "https://api.github.com/repos/barbushin/php-imap/zipball/3174b23aaf45cc570972209f366c384f257399a8", + "reference": "3174b23aaf45cc570972209f366c384f257399a8", "shasum": "" }, "require": { + "ext-imap": "*", "php": ">=5.3.0" }, "type": "library", "autoload": { - "psr-0": { - "PhpImap": "src/" + "psr-4": { + "PhpImap\\": "src/PhpImap/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1343,20 +1396,20 @@ "mail", "php" ], - "time": "2015-09-16 07:40:39" + "time": "2015-12-14 02:46:12" }, { "name": "propaganistas/laravel-phone", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/Propaganistas/Laravel-Phone.git", - "reference": "43b28096f88c0a3191a2cc123ca84da179e47fc7" + "reference": "c9d75872e1ea62de99d0a43be20fe153ca9f9422" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Propaganistas/Laravel-Phone/zipball/43b28096f88c0a3191a2cc123ca84da179e47fc7", - "reference": "43b28096f88c0a3191a2cc123ca84da179e47fc7", + "url": "https://api.github.com/repos/Propaganistas/Laravel-Phone/zipball/c9d75872e1ea62de99d0a43be20fe153ca9f9422", + "reference": "c9d75872e1ea62de99d0a43be20fe153ca9f9422", "shasum": "" }, "require": { @@ -1365,6 +1418,9 @@ "illuminate/validation": "~4.0|~5.0", "php": ">=5.4.0" }, + "require-dev": { + "orchestra/testbench": "^3.1" + }, "suggest": { "monarobase/country-list": "Adds a compatible (and fully translated) country list API." }, @@ -1394,7 +1450,7 @@ "phone", "validation" ], - "time": "2015-09-15 14:24:09" + "time": "2015-12-19 11:34:59" }, { "name": "psr/log", @@ -1560,16 +1616,16 @@ }, { "name": "symfony/console", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Console", "source": { "type": "git", - "url": "https://github.com/symfony/Console.git", + "url": "https://github.com/symfony/console.git", "reference": "0e5e18ae09d3f5c06367759be940e9ed3f568359" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/0e5e18ae09d3f5c06367759be940e9ed3f568359", + "url": "https://api.github.com/repos/symfony/console/zipball/0e5e18ae09d3f5c06367759be940e9ed3f568359", "reference": "0e5e18ae09d3f5c06367759be940e9ed3f568359", "shasum": "" }, @@ -1618,16 +1674,16 @@ }, { "name": "symfony/debug", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Debug", "source": { "type": "git", - "url": "https://github.com/symfony/Debug.git", + "url": "https://github.com/symfony/debug.git", "reference": "fca5696e0c9787722baa8f2ad6940dfd7a6a6941" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Debug/zipball/fca5696e0c9787722baa8f2ad6940dfd7a6a6941", + "url": "https://api.github.com/repos/symfony/debug/zipball/fca5696e0c9787722baa8f2ad6940dfd7a6a6941", "reference": "fca5696e0c9787722baa8f2ad6940dfd7a6a6941", "shasum": "" }, @@ -1679,16 +1735,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v2.7.6", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "87a5db5ea887763fa3a31a5471b512ff1596d9b8" + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87a5db5ea887763fa3a31a5471b512ff1596d9b8", - "reference": "87a5db5ea887763fa3a31a5471b512ff1596d9b8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", "shasum": "" }, "require": { @@ -1696,10 +1752,10 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.0,>=2.0.5", - "symfony/dependency-injection": "~2.6", - "symfony/expression-language": "~2.6", - "symfony/stopwatch": "~2.3" + "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" }, "suggest": { "symfony/dependency-injection": "", @@ -1708,13 +1764,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "2.8-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1732,20 +1791,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2015-10-11 09:39:48" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/filesystem", - "version": "v2.7.6", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "56fd6df73be859323ff97418d97edc1d756df6df" + "reference": "a7ad724530a764d70c168d321ac226ba3d2f10fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/56fd6df73be859323ff97418d97edc1d756df6df", - "reference": "56fd6df73be859323ff97418d97edc1d756df6df", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/a7ad724530a764d70c168d321ac226ba3d2f10fc", + "reference": "a7ad724530a764d70c168d321ac226ba3d2f10fc", "shasum": "" }, "require": { @@ -1754,13 +1813,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "2.8-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1778,20 +1840,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2015-10-18 20:23:18" + "time": "2015-12-22 10:25:57" }, { "name": "symfony/finder", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", - "url": "https://github.com/symfony/Finder.git", + "url": "https://github.com/symfony/finder.git", "reference": "203a10f928ae30176deeba33512999233181dd28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/203a10f928ae30176deeba33512999233181dd28", + "url": "https://api.github.com/repos/symfony/finder/zipball/203a10f928ae30176deeba33512999233181dd28", "reference": "203a10f928ae30176deeba33512999233181dd28", "shasum": "" }, @@ -1832,16 +1894,16 @@ }, { "name": "symfony/http-foundation", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/HttpFoundation", "source": { "type": "git", - "url": "https://github.com/symfony/HttpFoundation.git", + "url": "https://github.com/symfony/http-foundation.git", "reference": "e8fd1b73ac1c3de1f76c73801ddf1a8ecb1c1c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/e8fd1b73ac1c3de1f76c73801ddf1a8ecb1c1c9c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fd1b73ac1c3de1f76c73801ddf1a8ecb1c1c9c", "reference": "e8fd1b73ac1c3de1f76c73801ddf1a8ecb1c1c9c", "shasum": "" }, @@ -1886,17 +1948,17 @@ }, { "name": "symfony/http-kernel", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/HttpKernel", "source": { "type": "git", - "url": "https://github.com/symfony/HttpKernel.git", - "reference": "a3f0ed713255c0400a2db38b3ed01989ef4b7322" + "url": "https://github.com/symfony/http-kernel.git", + "reference": "498866a8ca0bcbcd3f3824b1520fa568ff7ca3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/a3f0ed713255c0400a2db38b3ed01989ef4b7322", - "reference": "a3f0ed713255c0400a2db38b3ed01989ef4b7322", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/498866a8ca0bcbcd3f3824b1520fa568ff7ca3b6", + "reference": "498866a8ca0bcbcd3f3824b1520fa568ff7ca3b6", "shasum": "" }, "require": { @@ -1960,20 +2022,128 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2015-07-26 10:44:22" + "time": "2015-11-23 11:37:53" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", + "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2015-12-18 15:10:25" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "4271c55cbc0a77b2641f861b978123e46b3da969" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4271c55cbc0a77b2641f861b978123e46b3da969", + "reference": "4271c55cbc0a77b2641f861b978123e46b3da969", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2015-11-04 20:28:58" }, { "name": "symfony/process", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Process", "source": { "type": "git", - "url": "https://github.com/symfony/Process.git", + "url": "https://github.com/symfony/process.git", "reference": "57f1e88bb5dafa449b83f9f265b11d52d517b3e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/57f1e88bb5dafa449b83f9f265b11d52d517b3e9", + "url": "https://api.github.com/repos/symfony/process/zipball/57f1e88bb5dafa449b83f9f265b11d52d517b3e9", "reference": "57f1e88bb5dafa449b83f9f265b11d52d517b3e9", "shasum": "" }, @@ -2014,16 +2184,16 @@ }, { "name": "symfony/routing", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Routing", "source": { "type": "git", - "url": "https://github.com/symfony/Routing.git", + "url": "https://github.com/symfony/routing.git", "reference": "0a1764d41bbb54f3864808c50569ac382b44d128" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Routing/zipball/0a1764d41bbb54f3864808c50569ac382b44d128", + "url": "https://api.github.com/repos/symfony/routing/zipball/0a1764d41bbb54f3864808c50569ac382b44d128", "reference": "0a1764d41bbb54f3864808c50569ac382b44d128", "shasum": "" }, @@ -2083,7 +2253,7 @@ }, { "name": "symfony/security-core", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Security/Core", "source": { "type": "git", @@ -2147,16 +2317,16 @@ }, { "name": "symfony/translation", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/Translation", "source": { "type": "git", - "url": "https://github.com/symfony/Translation.git", + "url": "https://github.com/symfony/translation.git", "reference": "d84291215b5892834dd8ca8ee52f9cbdb8274904" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Translation/zipball/d84291215b5892834dd8ca8ee52f9cbdb8274904", + "url": "https://api.github.com/repos/symfony/translation/zipball/d84291215b5892834dd8ca8ee52f9cbdb8274904", "reference": "d84291215b5892834dd8ca8ee52f9cbdb8274904", "shasum": "" }, @@ -2206,7 +2376,7 @@ }, { "name": "symfony/var-dumper", - "version": "v2.6.11", + "version": "v2.6.12", "target-dir": "Symfony/Component/VarDumper", "source": { "type": "git", @@ -2321,16 +2491,16 @@ }, { "name": "thomaswelton/laravel-gravatar", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/thomaswelton/laravel-gravatar.git", - "reference": "e01b473a4e89c8ebb203d0616e12894f5dd84c45" + "reference": "b9eeb9c23123cc8547973e0ca33dc5898bb768b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thomaswelton/laravel-gravatar/zipball/e01b473a4e89c8ebb203d0616e12894f5dd84c45", - "reference": "e01b473a4e89c8ebb203d0616e12894f5dd84c45", + "url": "https://api.github.com/repos/thomaswelton/laravel-gravatar/zipball/b9eeb9c23123cc8547973e0ca33dc5898bb768b8", + "reference": "b9eeb9c23123cc8547973e0ca33dc5898bb768b8", "shasum": "" }, "require": { @@ -2372,7 +2542,7 @@ "laravel", "laravel5" ], - "time": "2015-10-13 14:42:42" + "time": "2015-12-19 15:44:13" }, { "name": "vlucas/phpdotenv", @@ -2606,35 +2776,36 @@ }, { "name": "phpspec/phpspec", - "version": "2.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/phpspec/phpspec.git", - "reference": "36635a903bdeb54899d7407bc95610501fd98559" + "reference": "1d3938e6d9ffb1bd4805ea8ddac62ea48767f358" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/phpspec/zipball/36635a903bdeb54899d7407bc95610501fd98559", - "reference": "36635a903bdeb54899d7407bc95610501fd98559", + "url": "https://api.github.com/repos/phpspec/phpspec/zipball/1d3938e6d9ffb1bd4805ea8ddac62ea48767f358", + "reference": "1d3938e6d9ffb1bd4805ea8ddac62ea48767f358", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.1", + "ext-tokenizer": "*", "php": ">=5.3.3", "phpspec/php-diff": "~1.0.0", "phpspec/prophecy": "~1.4", "sebastian/exporter": "~1.0", - "symfony/console": "~2.3", - "symfony/event-dispatcher": "~2.1", - "symfony/finder": "~2.1", - "symfony/process": "^2.6", - "symfony/yaml": "~2.1" + "symfony/console": "~2.3|~3.0", + "symfony/event-dispatcher": "~2.1|~3.0", + "symfony/finder": "~2.1|~3.0", + "symfony/process": "^2.6|~3.0", + "symfony/yaml": "~2.1|~3.0" }, "require-dev": { "behat/behat": "^3.0.11", "bossa/phpspec2-expect": "~1.0", "phpunit/phpunit": "~4.4", - "symfony/filesystem": "~2.1" + "symfony/filesystem": "~2.1|~3.0" }, "suggest": { "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters" @@ -2679,7 +2850,7 @@ "testing", "tests" ], - "time": "2015-09-07 07:07:37" + "time": "2015-11-29 02:03:49" }, { "name": "phpspec/prophecy", @@ -2983,16 +3154,16 @@ }, { "name": "phpunit/phpunit", - "version": "4.8.16", + "version": "4.8.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "625f8c345606ed0f3a141dfb88f4116f0e22978e" + "reference": "ea76b17bced0500a28098626b84eda12dbcf119c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/625f8c345606ed0f3a141dfb88f4116f0e22978e", - "reference": "625f8c345606ed0f3a141dfb88f4116f0e22978e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea76b17bced0500a28098626b84eda12dbcf119c", + "reference": "ea76b17bced0500a28098626b84eda12dbcf119c", "shasum": "" }, "require": { @@ -3051,7 +3222,7 @@ "testing", "xunit" ], - "time": "2015-10-23 06:48:33" + "time": "2015-12-12 07:45:58" }, { "name": "phpunit/phpunit-mock-objects", @@ -3175,28 +3346,28 @@ }, { "name": "sebastian/diff", - "version": "1.3.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3" + "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3", - "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", + "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "~4.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -3219,24 +3390,24 @@ } ], "description": "Diff implementation", - "homepage": "http://www.github.com/sebastianbergmann/diff", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ "diff" ], - "time": "2015-02-22 15:13:53" + "time": "2015-12-08 07:14:41" }, { "name": "sebastian/environment", - "version": "1.3.2", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44" + "reference": "6e7133793a8e5a5714a551a8324337374be209df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44", - "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e7133793a8e5a5714a551a8324337374be209df", + "reference": "6e7133793a8e5a5714a551a8324337374be209df", "shasum": "" }, "require": { @@ -3273,7 +3444,7 @@ "environment", "hhvm" ], - "time": "2015-08-03 06:14:51" + "time": "2015-12-02 08:37:27" }, { "name": "sebastian/exporter", @@ -3394,16 +3565,16 @@ }, { "name": "sebastian/recursion-context", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "994d4a811bafe801fb06dccbee797863ba2792ba" + "reference": "913401df809e99e4f47b27cdd781f4a258d58791" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba", - "reference": "994d4a811bafe801fb06dccbee797863ba2792ba", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", + "reference": "913401df809e99e4f47b27cdd781f4a258d58791", "shasum": "" }, "require": { @@ -3443,7 +3614,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-06-21 08:04:50" + "time": "2015-11-11 19:50:13" }, { "name": "sebastian/version", @@ -3482,31 +3653,34 @@ }, { "name": "symfony/yaml", - "version": "v2.7.6", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "eca9019c88fbe250164affd107bc8057771f3f4d" + "reference": "3df409958a646dad2bc5046c3fb671ee24a1a691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/eca9019c88fbe250164affd107bc8057771f3f4d", - "reference": "eca9019c88fbe250164affd107bc8057771f3f4d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3df409958a646dad2bc5046c3fb671ee24a1a691", + "reference": "3df409958a646dad2bc5046c3fb671ee24a1a691", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3524,7 +3698,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2015-10-11 09:39:48" + "time": "2015-12-26 13:39:53" } ], "aliases": [], diff --git a/config/app.php b/config/app.php index 53f37b040..c032fff47 100644 --- a/config/app.php +++ b/config/app.php @@ -38,7 +38,7 @@ return [ | */ - 'version' => 'COMMUNITY 1.0.4.1', + 'version' => 'Community 1.0.5', /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2016_01_25_075608_create_banlist_table.php b/database/migrations/2016_01_25_075608_create_banlist_table.php new file mode 100644 index 000000000..259996904 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_banlist_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->boolean('ban_status'); + $table->string('email_address'); + $table->string('internal_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('banlist'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_canned_response_table.php b/database/migrations/2016_01_25_075608_create_canned_response_table.php new file mode 100644 index 000000000..fd4e203f3 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_canned_response_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('user_id')->unsigned()->index('user_id'); + $table->string('title'); + $table->text('message', 65535); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('canned_response'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_custom_form_fields_table.php b/database/migrations/2016_01_25_075608_create_custom_form_fields_table.php new file mode 100644 index 000000000..61c312c9d --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_custom_form_fields_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->integer('forms_id'); + $table->string('label'); + $table->string('name'); + $table->string('type'); + $table->string('value'); + $table->string('required'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('custom_form_fields'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_custom_forms_table.php b/database/migrations/2016_01_25_075608_create_custom_forms_table.php new file mode 100644 index 000000000..bfd386634 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_custom_forms_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('formname'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('custom_forms'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_date_format_table.php b/database/migrations/2016_01_25_075608_create_date_format_table.php new file mode 100644 index 000000000..647524d27 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_date_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('date_format'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_date_time_format_table.php b/database/migrations/2016_01_25_075608_create_date_time_format_table.php new file mode 100644 index 000000000..16162a6cf --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_date_time_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('date_time_format'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_department_table.php b/database/migrations/2016_01_25_075608_create_department_table.php new file mode 100644 index 000000000..9275e415d --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_department_table.php @@ -0,0 +1,46 @@ +increments('id'); + $table->string('name'); + $table->string('type'); + $table->integer('sla')->unsigned()->nullable()->index('sla'); + $table->integer('manager')->unsigned()->nullable()->index('manager_2'); + $table->string('ticket_assignment'); + $table->string('outgoing_email'); + $table->string('template_set'); + $table->string('auto_ticket_response'); + $table->string('auto_message_response'); + $table->string('auto_response_email'); + $table->string('recipient'); + $table->string('group_access'); + $table->string('department_sign'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('department'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_emails_table.php b/database/migrations/2016_01_25_075608_create_emails_table.php new file mode 100644 index 000000000..04b5bf79e --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_emails_table.php @@ -0,0 +1,58 @@ +increments('id'); + $table->string('email_address'); + $table->string('email_name'); + $table->integer('department')->unsigned()->nullable(); + $table->integer('priority')->unsigned()->nullable()->index('priority'); + $table->integer('help_topic')->unsigned()->nullable()->index('help_topic'); + $table->string('user_name'); + $table->string('password'); + $table->string('fetching_host'); + $table->string('fetching_port'); + $table->string('mailbox_protocol'); + $table->string('imap_config'); + $table->string('folder'); + $table->string('sending_host'); + $table->string('sending_port'); + $table->string('internal_notes'); + $table->boolean('auto_response'); + $table->boolean('fetching_status'); + $table->boolean('move_to_folder'); + $table->boolean('delete_email'); + $table->boolean('do_nothing'); + $table->boolean('sending_status'); + $table->boolean('authentication'); + $table->boolean('header_spoofing'); + $table->timestamps(); + $table->index(['department','priority','help_topic'], 'department'); + $table->index(['department','priority','help_topic'], 'department_2'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('emails'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_group_assign_department_table.php b/database/migrations/2016_01_25_075608_create_group_assign_department_table.php new file mode 100644 index 000000000..bda9a7f81 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_group_assign_department_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('group_id')->unsigned()->index('group_id'); + $table->integer('department_id')->unsigned()->index('department_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('group_assign_department'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_groups_table.php b/database/migrations/2016_01_25_075608_create_groups_table.php new file mode 100644 index 000000000..bdcfb7333 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_groups_table.php @@ -0,0 +1,48 @@ +increments('id'); + $table->string('name'); + $table->boolean('group_status'); + $table->boolean('can_create_ticket'); + $table->boolean('can_edit_ticket'); + $table->boolean('can_post_ticket'); + $table->boolean('can_close_ticket'); + $table->boolean('can_assign_ticket'); + $table->boolean('can_transfer_ticket'); + $table->boolean('can_delete_ticket'); + $table->boolean('can_ban_email'); + $table->boolean('can_manage_canned'); + $table->boolean('can_manage_faq'); + $table->boolean('can_view_agent_stats'); + $table->boolean('department_access'); + $table->string('admin_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('groups'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_help_topic_table.php b/database/migrations/2016_01_25_075608_create_help_topic_table.php new file mode 100644 index 000000000..e4a9b8436 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_help_topic_table.php @@ -0,0 +1,47 @@ +increments('id'); + $table->string('topic'); + $table->string('parent_topic'); + $table->integer('custom_form')->unsigned()->nullable()->index('custom_form'); + $table->integer('department')->unsigned()->nullable()->index('department'); + $table->integer('ticket_status')->unsigned()->nullable()->index('ticket_status'); + $table->integer('priority')->unsigned()->nullable()->index('priority'); + $table->integer('sla_plan')->unsigned()->nullable()->index('sla_plan'); + $table->string('thank_page'); + $table->string('ticket_num_format'); + $table->string('internal_notes'); + $table->boolean('status'); + $table->boolean('type'); + $table->integer('auto_assign')->unsigned()->nullable()->index('auto_assign_2'); + $table->boolean('auto_response'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('help_topic'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_article_relationship_table.php b/database/migrations/2016_01_25_075608_create_kb_article_relationship_table.php new file mode 100644 index 000000000..ce8f8ba18 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_article_relationship_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('article_id')->unsigned()->index('article_relationship_article_id_foreign'); + $table->integer('category_id')->unsigned()->index('article_relationship_category_id_foreign'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_article_relationship'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_article_table.php b/database/migrations/2016_01_25_075608_create_kb_article_table.php new file mode 100644 index 000000000..e214c3f32 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_article_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->string('slug'); + $table->text('description', 65535); + $table->boolean('status'); + $table->boolean('type'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_article'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_category_table.php b/database/migrations/2016_01_25_075608_create_kb_category_table.php new file mode 100644 index 000000000..785586a54 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_category_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->string('slug'); + $table->text('description', 65535); + $table->boolean('status'); + $table->integer('parent'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_category'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_comment_table.php b/database/migrations/2016_01_25_075608_create_kb_comment_table.php new file mode 100644 index 000000000..b92ba8196 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_comment_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->integer('article_id')->unsigned()->index('comment_article_id_foreign'); + $table->string('name'); + $table->string('email'); + $table->string('website'); + $table->string('comment'); + $table->boolean('status'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_comment'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_pages_table.php b/database/migrations/2016_01_25_075608_create_kb_pages_table.php new file mode 100644 index 000000000..2ade2e867 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_pages_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->boolean('visibility'); + $table->string('slug'); + $table->text('description', 65535); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_pages'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_kb_settings_table.php b/database/migrations/2016_01_25_075608_create_kb_settings_table.php new file mode 100644 index 000000000..0027e6335 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_kb_settings_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->integer('pagination'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_settings'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_languages_table.php b/database/migrations/2016_01_25_075608_create_languages_table.php new file mode 100644 index 000000000..ef6fdba3e --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_languages_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('locale'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('languages'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_log_notification_table.php b/database/migrations/2016_01_25_075608_create_log_notification_table.php new file mode 100644 index 000000000..c4bd472b2 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_log_notification_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('log'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('log_notification'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_mailbox_protocol_table.php b/database/migrations/2016_01_25_075608_create_mailbox_protocol_table.php new file mode 100644 index 000000000..e682d36ab --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_mailbox_protocol_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('value', 50)->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('mailbox_protocol'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_organization_table.php b/database/migrations/2016_01_25_075608_create_organization_table.php new file mode 100644 index 000000000..0ffd1e704 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_organization_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->string('phone'); + $table->string('website'); + $table->string('address'); + $table->integer('head')->unsigned()->nullable()->index('head'); + $table->string('internal_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('organization'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_password_resets_table.php b/database/migrations/2016_01_25_075608_create_password_resets_table.php new file mode 100644 index 000000000..0a007bb1d --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_password_resets_table.php @@ -0,0 +1,34 @@ +string('email')->index(); + $table->string('token')->index(); + $table->dateTime('created_at')->default('0000-00-00 00:00:00'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('password_resets'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_plugins_table.php b/database/migrations/2016_01_25_075608_create_plugins_table.php new file mode 100644 index 000000000..711f26fa1 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_plugins_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->string('name'); + $table->string('path'); + $table->integer('status'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('plugins'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_send_mail_table.php b/database/migrations/2016_01_25_075608_create_send_mail_table.php new file mode 100644 index 000000000..9aa53b0d6 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_send_mail_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('driver'); + $table->string('host'); + $table->string('port'); + $table->string('encryption'); + $table->string('name'); + $table->string('email'); + $table->string('password'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('send_mail'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_alert_notice_table.php b/database/migrations/2016_01_25_075608_create_settings_alert_notice_table.php new file mode 100644 index 000000000..2e839b7ca --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_alert_notice_table.php @@ -0,0 +1,62 @@ +increments('id'); + $table->boolean('ticket_status'); + $table->boolean('ticket_admin_email'); + $table->boolean('ticket_department_manager'); + $table->boolean('ticket_department_member'); + $table->boolean('ticket_organization_accmanager'); + $table->boolean('message_status'); + $table->boolean('message_last_responder'); + $table->boolean('message_assigned_agent'); + $table->boolean('message_department_manager'); + $table->boolean('message_organization_accmanager'); + $table->boolean('internal_status'); + $table->boolean('internal_last_responder'); + $table->boolean('internal_assigned_agent'); + $table->boolean('internal_department_manager'); + $table->boolean('assignment_status'); + $table->boolean('assignment_assigned_agent'); + $table->boolean('assignment_team_leader'); + $table->boolean('assignment_team_member'); + $table->boolean('transfer_status'); + $table->boolean('transfer_assigned_agent'); + $table->boolean('transfer_department_manager'); + $table->boolean('transfer_department_member'); + $table->boolean('overdue_status'); + $table->boolean('overdue_assigned_agent'); + $table->boolean('overdue_department_manager'); + $table->boolean('overdue_department_member'); + $table->boolean('system_error'); + $table->boolean('sql_error'); + $table->boolean('excessive_failure'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_alert_notice'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_auto_response_table.php b/database/migrations/2016_01_25_075608_create_settings_auto_response_table.php new file mode 100644 index 000000000..caab3f80a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_auto_response_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->boolean('new_ticket'); + $table->boolean('agent_new_ticket'); + $table->boolean('submitter'); + $table->boolean('participants'); + $table->boolean('overlimit'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_auto_response'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_company_table.php b/database/migrations/2016_01_25_075608_create_settings_company_table.php new file mode 100644 index 000000000..eb043bc28 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_company_table.php @@ -0,0 +1,42 @@ +increments('id'); + $table->string('company_name'); + $table->string('website'); + $table->string('phone'); + $table->string('address'); + $table->string('landing_page'); + $table->string('offline_page'); + $table->string('thank_page'); + $table->string('logo'); + $table->string('use_logo'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_company'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_email_table.php b/database/migrations/2016_01_25_075608_create_settings_email_table.php new file mode 100644 index 000000000..20b946baf --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_email_table.php @@ -0,0 +1,45 @@ +increments('id'); + $table->string('template'); + $table->string('sys_email'); + $table->string('alert_email'); + $table->string('admin_email'); + $table->string('mta'); + $table->boolean('email_fetching'); + $table->boolean('notification_cron'); + $table->boolean('strip'); + $table->boolean('separator'); + $table->boolean('all_emails'); + $table->boolean('email_collaborator'); + $table->boolean('attachment'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_email'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_system_table.php b/database/migrations/2016_01_25_075608_create_settings_system_table.php new file mode 100644 index 000000000..e0b60586f --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_system_table.php @@ -0,0 +1,47 @@ +increments('id'); + $table->boolean('status'); + $table->string('url'); + $table->string('name'); + $table->string('department'); + $table->string('page_size'); + $table->string('log_level'); + $table->string('purge_log'); + $table->string('name_format'); + $table->integer('time_farmat')->unsigned()->nullable()->index('time_farmat'); + $table->integer('date_format')->unsigned()->nullable()->index('date_format'); + $table->integer('date_time_format')->unsigned()->nullable()->index('date_time_format'); + $table->string('day_date_time'); + $table->integer('time_zone')->unsigned()->nullable()->index('time_zone'); + $table->string('content'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_system'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_settings_ticket_table.php b/database/migrations/2016_01_25_075608_create_settings_ticket_table.php new file mode 100644 index 000000000..b9e188518 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_settings_ticket_table.php @@ -0,0 +1,49 @@ +increments('id'); + $table->string('num_format'); + $table->string('num_sequence'); + $table->string('priority'); + $table->string('sla'); + $table->string('help_topic'); + $table->string('max_open_ticket'); + $table->string('collision_avoid'); + $table->string('captcha'); + $table->boolean('status'); + $table->boolean('claim_response'); + $table->boolean('assigned_ticket'); + $table->boolean('answered_ticket'); + $table->boolean('agent_mask'); + $table->boolean('html'); + $table->boolean('client_update'); + $table->boolean('max_file_size'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_ticket'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_sla_plan_table.php b/database/migrations/2016_01_25_075608_create_sla_plan_table.php new file mode 100644 index 000000000..79dbad5e1 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_sla_plan_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->string('grace_period'); + $table->string('admin_note'); + $table->boolean('status'); + $table->boolean('transient'); + $table->boolean('ticket_overdue'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('sla_plan'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_team_assign_agent_table.php b/database/migrations/2016_01_25_075608_create_team_assign_agent_table.php new file mode 100644 index 000000000..c69985169 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_team_assign_agent_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('team_id')->unsigned()->nullable()->index('team_id'); + $table->integer('agent_id')->unsigned()->nullable()->index('agent_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('team_assign_agent'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_teams_table.php b/database/migrations/2016_01_25_075608_create_teams_table.php new file mode 100644 index 000000000..b1aa0ce9c --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_teams_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->integer('team_lead')->unsigned()->nullable()->index('team_lead'); + $table->boolean('assign_alert'); + $table->string('admin_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('teams'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_template_table.php b/database/migrations/2016_01_25_075608_create_template_table.php new file mode 100644 index 000000000..a2ff68c81 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_template_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->string('template_set_to_clone'); + $table->string('language'); + $table->string('internal_note'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('template'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_attachment_table.php b/database/migrations/2016_01_25_075608_create_ticket_attachment_table.php new file mode 100644 index 000000000..72b2b405a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_attachment_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->integer('thread_id')->unsigned()->nullable()->index('thread_id'); + $table->string('size'); + $table->string('type'); + $table->string('poster'); + $table->timestamps(); + $table->binary('file', 65535)->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_attachment'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_collaborator_table.php b/database/migrations/2016_01_25_075608_create_ticket_collaborator_table.php new file mode 100644 index 000000000..b69c8928a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_collaborator_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->boolean('isactive'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->string('role'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_collaborator'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_form_data_table.php b/database/migrations/2016_01_25_075608_create_ticket_form_data_table.php new file mode 100644 index 000000000..685556e8a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_form_data_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id'); + $table->text('title', 65535); + $table->text('content', 65535); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_form_data'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_priority_table.php b/database/migrations/2016_01_25_075608_create_ticket_priority_table.php new file mode 100644 index 000000000..bbc884fa7 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_priority_table.php @@ -0,0 +1,37 @@ +increments('priority_id'); + $table->string('priority'); + $table->string('priority_desc'); + $table->string('priority_color'); + $table->boolean('priority_urgency'); + $table->boolean('ispublic'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_priority'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_source_table.php b/database/migrations/2016_01_25_075608_create_ticket_source_table.php new file mode 100644 index 000000000..f9672545a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_source_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('value'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_source'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_status_table.php b/database/migrations/2016_01_25_075608_create_ticket_status_table.php new file mode 100644 index 000000000..4bcfb65de --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_status_table.php @@ -0,0 +1,40 @@ +increments('id'); + $table->string('name'); + $table->string('state'); + $table->integer('mode'); + $table->string('message'); + $table->integer('flags'); + $table->integer('sort'); + $table->string('properties'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_status'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_ticket_thread_table.php b/database/migrations/2016_01_25_075608_create_ticket_thread_table.php new file mode 100644 index 000000000..5055d732c --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_ticket_thread_table.php @@ -0,0 +1,42 @@ +increments('id'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id_2'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->string('poster'); + $table->integer('source')->unsigned()->nullable()->index('source'); + $table->boolean('is_internal'); + $table->string('title'); + $table->text('body', 65535); + $table->string('format'); + $table->string('ip_address'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_thread'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_tickets_table.php b/database/migrations/2016_01_25_075608_create_tickets_table.php new file mode 100644 index 000000000..0223ce530 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_tickets_table.php @@ -0,0 +1,60 @@ +increments('id'); + $table->string('ticket_number'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->integer('dept_id')->unsigned()->nullable()->index('dept_id'); + $table->integer('team_id')->unsigned()->nullable()->index('team_id'); + $table->integer('priority_id')->unsigned()->nullable()->index('priority_id'); + $table->integer('sla')->unsigned()->nullable()->index('sla'); + $table->integer('help_topic_id')->unsigned()->nullable()->index('help_topic_id'); + $table->integer('status')->unsigned()->nullable()->index('status'); + $table->integer('flags'); + $table->integer('ip_address'); + $table->integer('assigned_to')->unsigned()->nullable()->index('assigned_to'); + $table->integer('lock_by'); + $table->integer('lock_at'); + $table->integer('source')->unsigned()->nullable()->index('source'); + $table->integer('isoverdue'); + $table->integer('reopened'); + $table->integer('isanswered'); + $table->integer('html'); + $table->integer('is_deleted'); + $table->integer('closed'); + $table->boolean('is_transferred'); + $table->dateTime('transferred_at'); + $table->dateTime('reopened_at')->nullable(); + $table->dateTime('duedate')->nullable(); + $table->dateTime('closed_at')->nullable(); + $table->dateTime('last_message_at')->nullable(); + $table->dateTime('last_response_at')->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('tickets'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_time_format_table.php b/database/migrations/2016_01_25_075608_create_time_format_table.php new file mode 100644 index 000000000..056243d4a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_time_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('time_format'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_timezone_table.php b/database/migrations/2016_01_25_075608_create_timezone_table.php new file mode 100644 index 000000000..36fd6ae05 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_timezone_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('location'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('timezone'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_user_assign_organization_table.php b/database/migrations/2016_01_25_075608_create_user_assign_organization_table.php new file mode 100644 index 000000000..55997f4db --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_user_assign_organization_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('org_id')->unsigned()->nullable()->index('org_id'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('user_assign_organization'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_users_table.php b/database/migrations/2016_01_25_075608_create_users_table.php new file mode 100644 index 000000000..5e9234100 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_users_table.php @@ -0,0 +1,59 @@ +increments('id'); + $table->string('user_name'); + $table->string('first_name'); + $table->string('last_name'); + $table->boolean('gender'); + $table->string('email')->unique(); + $table->boolean('ban'); + $table->string('password', 60); + $table->integer('active'); + $table->string('ext'); + $table->string('phone_number'); + $table->string('mobile'); + $table->string('agent_sign'); + $table->string('account_type'); + $table->string('account_status'); + $table->integer('assign_group')->unsigned()->nullable()->index('assign_group_3'); + $table->integer('primary_dpt')->unsigned()->nullable()->index('primary_dpt_2'); + $table->string('agent_tzone'); + $table->string('daylight_save'); + $table->string('limit_access'); + $table->string('directory_listing'); + $table->string('vacation_mode'); + $table->string('company'); + $table->string('role'); + $table->string('internal_note'); + $table->string('profile_pic'); + $table->string('remember_token', 100)->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('users'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_version_check_table.php b/database/migrations/2016_01_25_075608_create_version_check_table.php new file mode 100644 index 000000000..6ecd50ae9 --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_version_check_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('current_version'); + $table->string('new_version'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('version_check'); + } + +} diff --git a/database/migrations/2016_01_25_075608_create_widgets_table.php b/database/migrations/2016_01_25_075608_create_widgets_table.php new file mode 100644 index 000000000..8bf54996a --- /dev/null +++ b/database/migrations/2016_01_25_075608_create_widgets_table.php @@ -0,0 +1,36 @@ +integer('id', true); + $table->string('name', 30)->nullable(); + $table->string('title', 50)->nullable(); + $table->text('value', 65535)->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('widgets'); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_canned_response_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_canned_response_table.php new file mode 100644 index 000000000..26e13693a --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_canned_response_table.php @@ -0,0 +1,35 @@ +foreign('user_id', 'canned_response_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('NO ACTION'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('canned_response', function(Blueprint $table) + { + $table->dropForeign('canned_response_ibfk_1'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_department_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_department_table.php new file mode 100644 index 000000000..8a17915a8 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_department_table.php @@ -0,0 +1,37 @@ +foreign('sla', 'department_ibfk_1')->references('id')->on('sla_plan')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('manager', 'department_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('department', function(Blueprint $table) + { + $table->dropForeign('department_ibfk_1'); + $table->dropForeign('department_ibfk_2'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_emails_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_emails_table.php new file mode 100644 index 000000000..f75388154 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_emails_table.php @@ -0,0 +1,39 @@ +foreign('department', 'emails_ibfk_1')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority', 'emails_ibfk_2')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('help_topic', 'emails_ibfk_3')->references('id')->on('help_topic')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('emails', function(Blueprint $table) + { + $table->dropForeign('emails_ibfk_1'); + $table->dropForeign('emails_ibfk_2'); + $table->dropForeign('emails_ibfk_3'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_group_assign_department_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_group_assign_department_table.php new file mode 100644 index 000000000..63193fb6e --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_group_assign_department_table.php @@ -0,0 +1,37 @@ +foreign('group_id', 'group_assign_department_ibfk_1')->references('id')->on('groups')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('department_id', 'group_assign_department_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('group_assign_department', function(Blueprint $table) + { + $table->dropForeign('group_assign_department_ibfk_1'); + $table->dropForeign('group_assign_department_ibfk_2'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_help_topic_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_help_topic_table.php new file mode 100644 index 000000000..34773f0f0 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_help_topic_table.php @@ -0,0 +1,45 @@ +foreign('custom_form', 'help_topic_ibfk_1')->references('id')->on('custom_forms')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('department', 'help_topic_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('ticket_status', 'help_topic_ibfk_3')->references('id')->on('ticket_status')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority', 'help_topic_ibfk_4')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('sla_plan', 'help_topic_ibfk_5')->references('id')->on('sla_plan')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + $table->foreign('auto_assign', 'help_topic_ibfk_6')->references('id')->on('users')->onUpdate('RESTRICT')->onDelete('SET NULL'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('help_topic', function(Blueprint $table) + { + $table->dropForeign('help_topic_ibfk_1'); + $table->dropForeign('help_topic_ibfk_2'); + $table->dropForeign('help_topic_ibfk_3'); + $table->dropForeign('help_topic_ibfk_4'); + $table->dropForeign('help_topic_ibfk_5'); + $table->dropForeign('help_topic_ibfk_6'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_article_relationship_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_article_relationship_table.php new file mode 100644 index 000000000..d8390609d --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_article_relationship_table.php @@ -0,0 +1,37 @@ +foreign('article_id', 'article_relationship_article_id_foreign')->references('id')->on('kb_article')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + $table->foreign('category_id', 'article_relationship_category_id_foreign')->references('id')->on('kb_category')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('kb_article_relationship', function(Blueprint $table) + { + $table->dropForeign('article_relationship_article_id_foreign'); + $table->dropForeign('article_relationship_category_id_foreign'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_comment_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_comment_table.php new file mode 100644 index 000000000..f8f1409ba --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_kb_comment_table.php @@ -0,0 +1,35 @@ +foreign('article_id', 'comment_article_id_foreign')->references('id')->on('kb_article')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('kb_comment', function(Blueprint $table) + { + $table->dropForeign('comment_article_id_foreign'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_organization_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_organization_table.php new file mode 100644 index 000000000..577737b7a --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_organization_table.php @@ -0,0 +1,35 @@ +foreign('head', 'organization_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('NO ACTION'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('organization', function(Blueprint $table) + { + $table->dropForeign('organization_ibfk_1'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_settings_system_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_settings_system_table.php new file mode 100644 index 000000000..79f7a162e --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_settings_system_table.php @@ -0,0 +1,41 @@ +foreign('time_zone', 'settings_system_ibfk_1')->references('id')->on('timezone')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('time_farmat', 'settings_system_ibfk_2')->references('id')->on('time_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('date_format', 'settings_system_ibfk_3')->references('id')->on('date_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('date_time_format', 'settings_system_ibfk_4')->references('id')->on('date_time_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings_system', function(Blueprint $table) + { + $table->dropForeign('settings_system_ibfk_1'); + $table->dropForeign('settings_system_ibfk_2'); + $table->dropForeign('settings_system_ibfk_3'); + $table->dropForeign('settings_system_ibfk_4'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_team_assign_agent_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_team_assign_agent_table.php new file mode 100644 index 000000000..94603ea90 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_team_assign_agent_table.php @@ -0,0 +1,37 @@ +foreign('team_id', 'team_assign_agent_ibfk_1')->references('id')->on('teams')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('agent_id', 'team_assign_agent_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('team_assign_agent', function(Blueprint $table) + { + $table->dropForeign('team_assign_agent_ibfk_1'); + $table->dropForeign('team_assign_agent_ibfk_2'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_teams_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_teams_table.php new file mode 100644 index 000000000..d9bc1de73 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_teams_table.php @@ -0,0 +1,35 @@ +foreign('team_lead', 'teams_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('teams', function(Blueprint $table) + { + $table->dropForeign('teams_ibfk_1'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_attachment_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_attachment_table.php new file mode 100644 index 000000000..ed630905a --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_attachment_table.php @@ -0,0 +1,35 @@ +foreign('thread_id', 'ticket_attachment_ibfk_1')->references('id')->on('ticket_thread')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_attachment', function(Blueprint $table) + { + $table->dropForeign('ticket_attachment_ibfk_1'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_collaborator_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_collaborator_table.php new file mode 100644 index 000000000..0e333765d --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_collaborator_table.php @@ -0,0 +1,37 @@ +foreign('ticket_id', 'ticket_collaborator_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'ticket_collaborator_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_collaborator', function(Blueprint $table) + { + $table->dropForeign('ticket_collaborator_ibfk_1'); + $table->dropForeign('ticket_collaborator_ibfk_2'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_form_data_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_form_data_table.php new file mode 100644 index 000000000..aae4ccd73 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_form_data_table.php @@ -0,0 +1,35 @@ +foreign('ticket_id', 'ticket_form_data_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_form_data', function(Blueprint $table) + { + $table->dropForeign('ticket_form_data_ibfk_1'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_thread_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_thread_table.php new file mode 100644 index 000000000..701353ac1 --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_ticket_thread_table.php @@ -0,0 +1,39 @@ +foreign('ticket_id', 'ticket_thread_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'ticket_thread_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('source', 'ticket_thread_ibfk_3')->references('id')->on('ticket_source')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_thread', function(Blueprint $table) + { + $table->dropForeign('ticket_thread_ibfk_1'); + $table->dropForeign('ticket_thread_ibfk_2'); + $table->dropForeign('ticket_thread_ibfk_3'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_tickets_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_tickets_table.php new file mode 100644 index 000000000..4c63cbcbb --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_tickets_table.php @@ -0,0 +1,51 @@ +foreign('user_id', 'tickets_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('dept_id', 'tickets_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('team_id', 'tickets_ibfk_3')->references('id')->on('teams')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority_id', 'tickets_ibfk_4')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('sla', 'tickets_ibfk_5')->references('id')->on('sla_plan')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('help_topic_id', 'tickets_ibfk_6')->references('id')->on('help_topic')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('status', 'tickets_ibfk_7')->references('id')->on('ticket_status')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('source', 'tickets_ibfk_8')->references('id')->on('ticket_source')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('assigned_to', 'tickets_ibfk_9')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('tickets', function(Blueprint $table) + { + $table->dropForeign('tickets_ibfk_1'); + $table->dropForeign('tickets_ibfk_2'); + $table->dropForeign('tickets_ibfk_3'); + $table->dropForeign('tickets_ibfk_4'); + $table->dropForeign('tickets_ibfk_5'); + $table->dropForeign('tickets_ibfk_6'); + $table->dropForeign('tickets_ibfk_7'); + $table->dropForeign('tickets_ibfk_8'); + $table->dropForeign('tickets_ibfk_9'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_user_assign_organization_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_user_assign_organization_table.php new file mode 100644 index 000000000..3bcd0054e --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_user_assign_organization_table.php @@ -0,0 +1,37 @@ +foreign('org_id', 'user_assign_organization_ibfk_1')->references('id')->on('organization')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'user_assign_organization_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('user_assign_organization', function(Blueprint $table) + { + $table->dropForeign('user_assign_organization_ibfk_1'); + $table->dropForeign('user_assign_organization_ibfk_2'); + }); + } + +} diff --git a/database/migrations/2016_01_25_075612_add_foreign_keys_to_users_table.php b/database/migrations/2016_01_25_075612_add_foreign_keys_to_users_table.php new file mode 100644 index 000000000..750458fba --- /dev/null +++ b/database/migrations/2016_01_25_075612_add_foreign_keys_to_users_table.php @@ -0,0 +1,37 @@ +foreign('assign_group', 'users_ibfk_1')->references('id')->on('groups')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('primary_dpt', 'users_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function(Blueprint $table) + { + $table->dropForeign('users_ibfk_1'); + $table->dropForeign('users_ibfk_2'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_banlist_table.php b/database/migrations2/2016_01_12_060642_create_banlist_table.php new file mode 100644 index 000000000..259996904 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_banlist_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->boolean('ban_status'); + $table->string('email_address'); + $table->string('internal_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('banlist'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_canned_response_table.php b/database/migrations2/2016_01_12_060642_create_canned_response_table.php new file mode 100644 index 000000000..41e1a8d42 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_canned_response_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('user_id')->unsigned()->index('user_id'); + $table->string('title'); + $table->text('message'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('canned_response'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_custom_form_fields_table.php b/database/migrations2/2016_01_12_060642_create_custom_form_fields_table.php new file mode 100644 index 000000000..61c312c9d --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_custom_form_fields_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->integer('forms_id'); + $table->string('label'); + $table->string('name'); + $table->string('type'); + $table->string('value'); + $table->string('required'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('custom_form_fields'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_custom_forms_table.php b/database/migrations2/2016_01_12_060642_create_custom_forms_table.php new file mode 100644 index 000000000..bfd386634 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_custom_forms_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('formname'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('custom_forms'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_date_format_table.php b/database/migrations2/2016_01_12_060642_create_date_format_table.php new file mode 100644 index 000000000..647524d27 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_date_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('date_format'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_date_time_format_table.php b/database/migrations2/2016_01_12_060642_create_date_time_format_table.php new file mode 100644 index 000000000..16162a6cf --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_date_time_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('date_time_format'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_department_table.php b/database/migrations2/2016_01_12_060642_create_department_table.php new file mode 100644 index 000000000..9275e415d --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_department_table.php @@ -0,0 +1,46 @@ +increments('id'); + $table->string('name'); + $table->string('type'); + $table->integer('sla')->unsigned()->nullable()->index('sla'); + $table->integer('manager')->unsigned()->nullable()->index('manager_2'); + $table->string('ticket_assignment'); + $table->string('outgoing_email'); + $table->string('template_set'); + $table->string('auto_ticket_response'); + $table->string('auto_message_response'); + $table->string('auto_response_email'); + $table->string('recipient'); + $table->string('group_access'); + $table->string('department_sign'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('department'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_emails_table.php b/database/migrations2/2016_01_12_060642_create_emails_table.php new file mode 100644 index 000000000..04b5bf79e --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_emails_table.php @@ -0,0 +1,58 @@ +increments('id'); + $table->string('email_address'); + $table->string('email_name'); + $table->integer('department')->unsigned()->nullable(); + $table->integer('priority')->unsigned()->nullable()->index('priority'); + $table->integer('help_topic')->unsigned()->nullable()->index('help_topic'); + $table->string('user_name'); + $table->string('password'); + $table->string('fetching_host'); + $table->string('fetching_port'); + $table->string('mailbox_protocol'); + $table->string('imap_config'); + $table->string('folder'); + $table->string('sending_host'); + $table->string('sending_port'); + $table->string('internal_notes'); + $table->boolean('auto_response'); + $table->boolean('fetching_status'); + $table->boolean('move_to_folder'); + $table->boolean('delete_email'); + $table->boolean('do_nothing'); + $table->boolean('sending_status'); + $table->boolean('authentication'); + $table->boolean('header_spoofing'); + $table->timestamps(); + $table->index(['department','priority','help_topic'], 'department'); + $table->index(['department','priority','help_topic'], 'department_2'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('emails'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_group_assign_department_table.php b/database/migrations2/2016_01_12_060642_create_group_assign_department_table.php new file mode 100644 index 000000000..bda9a7f81 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_group_assign_department_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('group_id')->unsigned()->index('group_id'); + $table->integer('department_id')->unsigned()->index('department_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('group_assign_department'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_groups_table.php b/database/migrations2/2016_01_12_060642_create_groups_table.php new file mode 100644 index 000000000..bdcfb7333 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_groups_table.php @@ -0,0 +1,48 @@ +increments('id'); + $table->string('name'); + $table->boolean('group_status'); + $table->boolean('can_create_ticket'); + $table->boolean('can_edit_ticket'); + $table->boolean('can_post_ticket'); + $table->boolean('can_close_ticket'); + $table->boolean('can_assign_ticket'); + $table->boolean('can_transfer_ticket'); + $table->boolean('can_delete_ticket'); + $table->boolean('can_ban_email'); + $table->boolean('can_manage_canned'); + $table->boolean('can_manage_faq'); + $table->boolean('can_view_agent_stats'); + $table->boolean('department_access'); + $table->string('admin_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('groups'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_help_topic_table.php b/database/migrations2/2016_01_12_060642_create_help_topic_table.php new file mode 100644 index 000000000..6e1e02930 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_help_topic_table.php @@ -0,0 +1,47 @@ +increments('id'); + $table->string('topic'); + $table->string('parent_topic'); + $table->integer('custom_form')->unsigned()->nullable()->index('custom_form'); + $table->integer('department')->unsigned()->nullable()->index('department'); + $table->integer('ticket_status')->unsigned()->nullable()->index('ticket_status'); + $table->integer('priority')->unsigned()->nullable()->index('priority'); + $table->integer('sla_plan')->unsigned()->nullable()->index('sla_plan'); + $table->string('thank_page'); + $table->string('ticket_num_format'); + $table->string('internal_notes'); + $table->boolean('status'); + $table->boolean('type'); + $table->boolean('auto_assign'); + $table->boolean('auto_response'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('help_topic'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_article_relationship_table.php b/database/migrations2/2016_01_12_060642_create_kb_article_relationship_table.php new file mode 100644 index 000000000..ce8f8ba18 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_article_relationship_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('article_id')->unsigned()->index('article_relationship_article_id_foreign'); + $table->integer('category_id')->unsigned()->index('article_relationship_category_id_foreign'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_article_relationship'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_article_table.php b/database/migrations2/2016_01_12_060642_create_kb_article_table.php new file mode 100644 index 000000000..beeebc4ac --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_article_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->string('slug'); + $table->text('description'); + $table->boolean('status'); + $table->boolean('type'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_article'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_category_table.php b/database/migrations2/2016_01_12_060642_create_kb_category_table.php new file mode 100644 index 000000000..cde8386ac --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_category_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->string('slug'); + $table->text('description', 16777215); + $table->boolean('status'); + $table->integer('parent'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_category'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_comment_table.php b/database/migrations2/2016_01_12_060642_create_kb_comment_table.php new file mode 100644 index 000000000..b92ba8196 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_comment_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->integer('article_id')->unsigned()->index('comment_article_id_foreign'); + $table->string('name'); + $table->string('email'); + $table->string('website'); + $table->string('comment'); + $table->boolean('status'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_comment'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_pages_table.php b/database/migrations2/2016_01_12_060642_create_kb_pages_table.php new file mode 100644 index 000000000..44a9b73eb --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_pages_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->boolean('visibility'); + $table->string('slug'); + $table->text('description'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_pages'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_kb_settings_table.php b/database/migrations2/2016_01_12_060642_create_kb_settings_table.php new file mode 100644 index 000000000..0027e6335 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_kb_settings_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->integer('pagination'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('kb_settings'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_languages_table.php b/database/migrations2/2016_01_12_060642_create_languages_table.php new file mode 100644 index 000000000..ef6fdba3e --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_languages_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('locale'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('languages'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_log_notification_table.php b/database/migrations2/2016_01_12_060642_create_log_notification_table.php new file mode 100644 index 000000000..c4bd472b2 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_log_notification_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('log'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('log_notification'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_mailbox_protocol_table.php b/database/migrations2/2016_01_12_060642_create_mailbox_protocol_table.php new file mode 100644 index 000000000..e682d36ab --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_mailbox_protocol_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('value', 50)->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('mailbox_protocol'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_organization_table.php b/database/migrations2/2016_01_12_060642_create_organization_table.php new file mode 100644 index 000000000..0ffd1e704 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_organization_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->string('phone'); + $table->string('website'); + $table->string('address'); + $table->integer('head')->unsigned()->nullable()->index('head'); + $table->string('internal_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('organization'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_password_resets_table.php b/database/migrations2/2016_01_12_060642_create_password_resets_table.php new file mode 100644 index 000000000..0a007bb1d --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_password_resets_table.php @@ -0,0 +1,34 @@ +string('email')->index(); + $table->string('token')->index(); + $table->dateTime('created_at')->default('0000-00-00 00:00:00'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('password_resets'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_plugins_table.php b/database/migrations2/2016_01_12_060642_create_plugins_table.php new file mode 100644 index 000000000..711f26fa1 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_plugins_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->string('name'); + $table->string('path'); + $table->integer('status'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('plugins'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_send_mail_table.php b/database/migrations2/2016_01_12_060642_create_send_mail_table.php new file mode 100644 index 000000000..9aa53b0d6 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_send_mail_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('driver'); + $table->string('host'); + $table->string('port'); + $table->string('encryption'); + $table->string('name'); + $table->string('email'); + $table->string('password'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('send_mail'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_alert_notice_table.php b/database/migrations2/2016_01_12_060642_create_settings_alert_notice_table.php new file mode 100644 index 000000000..2e839b7ca --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_alert_notice_table.php @@ -0,0 +1,62 @@ +increments('id'); + $table->boolean('ticket_status'); + $table->boolean('ticket_admin_email'); + $table->boolean('ticket_department_manager'); + $table->boolean('ticket_department_member'); + $table->boolean('ticket_organization_accmanager'); + $table->boolean('message_status'); + $table->boolean('message_last_responder'); + $table->boolean('message_assigned_agent'); + $table->boolean('message_department_manager'); + $table->boolean('message_organization_accmanager'); + $table->boolean('internal_status'); + $table->boolean('internal_last_responder'); + $table->boolean('internal_assigned_agent'); + $table->boolean('internal_department_manager'); + $table->boolean('assignment_status'); + $table->boolean('assignment_assigned_agent'); + $table->boolean('assignment_team_leader'); + $table->boolean('assignment_team_member'); + $table->boolean('transfer_status'); + $table->boolean('transfer_assigned_agent'); + $table->boolean('transfer_department_manager'); + $table->boolean('transfer_department_member'); + $table->boolean('overdue_status'); + $table->boolean('overdue_assigned_agent'); + $table->boolean('overdue_department_manager'); + $table->boolean('overdue_department_member'); + $table->boolean('system_error'); + $table->boolean('sql_error'); + $table->boolean('excessive_failure'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_alert_notice'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_auto_response_table.php b/database/migrations2/2016_01_12_060642_create_settings_auto_response_table.php new file mode 100644 index 000000000..caab3f80a --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_auto_response_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->boolean('new_ticket'); + $table->boolean('agent_new_ticket'); + $table->boolean('submitter'); + $table->boolean('participants'); + $table->boolean('overlimit'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_auto_response'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_company_table.php b/database/migrations2/2016_01_12_060642_create_settings_company_table.php new file mode 100644 index 000000000..eb043bc28 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_company_table.php @@ -0,0 +1,42 @@ +increments('id'); + $table->string('company_name'); + $table->string('website'); + $table->string('phone'); + $table->string('address'); + $table->string('landing_page'); + $table->string('offline_page'); + $table->string('thank_page'); + $table->string('logo'); + $table->string('use_logo'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_company'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_email_table.php b/database/migrations2/2016_01_12_060642_create_settings_email_table.php new file mode 100644 index 000000000..20b946baf --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_email_table.php @@ -0,0 +1,45 @@ +increments('id'); + $table->string('template'); + $table->string('sys_email'); + $table->string('alert_email'); + $table->string('admin_email'); + $table->string('mta'); + $table->boolean('email_fetching'); + $table->boolean('notification_cron'); + $table->boolean('strip'); + $table->boolean('separator'); + $table->boolean('all_emails'); + $table->boolean('email_collaborator'); + $table->boolean('attachment'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_email'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_system_table.php b/database/migrations2/2016_01_12_060642_create_settings_system_table.php new file mode 100644 index 000000000..e0b60586f --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_system_table.php @@ -0,0 +1,47 @@ +increments('id'); + $table->boolean('status'); + $table->string('url'); + $table->string('name'); + $table->string('department'); + $table->string('page_size'); + $table->string('log_level'); + $table->string('purge_log'); + $table->string('name_format'); + $table->integer('time_farmat')->unsigned()->nullable()->index('time_farmat'); + $table->integer('date_format')->unsigned()->nullable()->index('date_format'); + $table->integer('date_time_format')->unsigned()->nullable()->index('date_time_format'); + $table->string('day_date_time'); + $table->integer('time_zone')->unsigned()->nullable()->index('time_zone'); + $table->string('content'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_system'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_settings_ticket_table.php b/database/migrations2/2016_01_12_060642_create_settings_ticket_table.php new file mode 100644 index 000000000..b9e188518 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_settings_ticket_table.php @@ -0,0 +1,49 @@ +increments('id'); + $table->string('num_format'); + $table->string('num_sequence'); + $table->string('priority'); + $table->string('sla'); + $table->string('help_topic'); + $table->string('max_open_ticket'); + $table->string('collision_avoid'); + $table->string('captcha'); + $table->boolean('status'); + $table->boolean('claim_response'); + $table->boolean('assigned_ticket'); + $table->boolean('answered_ticket'); + $table->boolean('agent_mask'); + $table->boolean('html'); + $table->boolean('client_update'); + $table->boolean('max_file_size'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('settings_ticket'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_sla_plan_table.php b/database/migrations2/2016_01_12_060642_create_sla_plan_table.php new file mode 100644 index 000000000..79dbad5e1 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_sla_plan_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->string('grace_period'); + $table->string('admin_note'); + $table->boolean('status'); + $table->boolean('transient'); + $table->boolean('ticket_overdue'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('sla_plan'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_team_assign_agent_table.php b/database/migrations2/2016_01_12_060642_create_team_assign_agent_table.php new file mode 100644 index 000000000..c69985169 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_team_assign_agent_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('team_id')->unsigned()->nullable()->index('team_id'); + $table->integer('agent_id')->unsigned()->nullable()->index('agent_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('team_assign_agent'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_teams_table.php b/database/migrations2/2016_01_12_060642_create_teams_table.php new file mode 100644 index 000000000..b1aa0ce9c --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_teams_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->integer('team_lead')->unsigned()->nullable()->index('team_lead'); + $table->boolean('assign_alert'); + $table->string('admin_notes'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('teams'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_template_table.php b/database/migrations2/2016_01_12_060642_create_template_table.php new file mode 100644 index 000000000..a2ff68c81 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_template_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name'); + $table->boolean('status'); + $table->string('template_set_to_clone'); + $table->string('language'); + $table->string('internal_note'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('template'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_attachment_table.php b/database/migrations2/2016_01_12_060642_create_ticket_attachment_table.php new file mode 100644 index 000000000..a281cae76 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_attachment_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('name'); + $table->integer('thread_id')->unsigned()->nullable()->index('thread_id'); + $table->string('size'); + $table->string('type'); + $table->string('poster'); + $table->timestamps(); + $table->binary('file', 16777215)->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_attachment'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_collaborator_table.php b/database/migrations2/2016_01_12_060642_create_ticket_collaborator_table.php new file mode 100644 index 000000000..b69c8928a --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_collaborator_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->boolean('isactive'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->string('role'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_collaborator'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_form_data_table.php b/database/migrations2/2016_01_12_060642_create_ticket_form_data_table.php new file mode 100644 index 000000000..8d50df7ed --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_form_data_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id'); + $table->text('title', 65535); + $table->text('content', 16777215); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_form_data'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_priority_table.php b/database/migrations2/2016_01_12_060642_create_ticket_priority_table.php new file mode 100644 index 000000000..bbc884fa7 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_priority_table.php @@ -0,0 +1,37 @@ +increments('priority_id'); + $table->string('priority'); + $table->string('priority_desc'); + $table->string('priority_color'); + $table->boolean('priority_urgency'); + $table->boolean('ispublic'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_priority'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_source_table.php b/database/migrations2/2016_01_12_060642_create_ticket_source_table.php new file mode 100644 index 000000000..f9672545a --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_source_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('value'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_source'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_status_table.php b/database/migrations2/2016_01_12_060642_create_ticket_status_table.php new file mode 100644 index 000000000..4bcfb65de --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_status_table.php @@ -0,0 +1,40 @@ +increments('id'); + $table->string('name'); + $table->string('state'); + $table->integer('mode'); + $table->string('message'); + $table->integer('flags'); + $table->integer('sort'); + $table->string('properties'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_status'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_ticket_thread_table.php b/database/migrations2/2016_01_12_060642_create_ticket_thread_table.php new file mode 100644 index 000000000..934323dcf --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_ticket_thread_table.php @@ -0,0 +1,42 @@ +increments('id'); + $table->integer('ticket_id')->unsigned()->nullable()->index('ticket_id_2'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->string('poster'); + $table->integer('source')->unsigned()->nullable()->index('source'); + $table->boolean('is_internal'); + $table->string('title'); + $table->text('body', 16777215); + $table->string('format'); + $table->string('ip_address'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('ticket_thread'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_tickets_table.php b/database/migrations2/2016_01_12_060642_create_tickets_table.php new file mode 100644 index 000000000..166b5c1c9 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_tickets_table.php @@ -0,0 +1,60 @@ +increments('id'); + $table->string('ticket_number'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->integer('dept_id')->unsigned()->nullable()->index('dept_id'); + $table->integer('team_id')->unsigned()->nullable()->index('team_id'); + $table->integer('priority_id')->unsigned()->nullable()->index('priority_id'); + $table->integer('sla')->unsigned()->nullable()->index('sla'); + $table->integer('help_topic_id')->unsigned()->nullable()->index('help_topic_id'); + $table->integer('status')->unsigned()->nullable()->index('status'); + $table->integer('flags'); + $table->integer('ip_address'); + $table->integer('assigned_to')->unsigned()->nullable()->index('assigned_to'); + $table->integer('lock_by'); + $table->integer('lock_at'); + $table->integer('source')->unsigned()->nullable()->index('source'); + $table->integer('isoverdue'); + $table->integer('reopened'); + $table->integer('isanswered'); + $table->integer('html'); + $table->integer('is_deleted'); + $table->integer('closed'); + $table->integer('is_transfer'); + $table->dateTime('transfer_at')->nullable(); + $table->dateTime('reopened_at')->nullable(); + $table->dateTime('duedate')->nullable(); + $table->dateTime('closed_at')->nullable(); + $table->dateTime('last_message_at')->nullable(); + $table->dateTime('last_response_at')->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('tickets'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_time_format_table.php b/database/migrations2/2016_01_12_060642_create_time_format_table.php new file mode 100644 index 000000000..056243d4a --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_time_format_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->string('format'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('time_format'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_timezone_table.php b/database/migrations2/2016_01_12_060642_create_timezone_table.php new file mode 100644 index 000000000..36fd6ae05 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_timezone_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name'); + $table->string('location'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('timezone'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_user_assign_organization_table.php b/database/migrations2/2016_01_12_060642_create_user_assign_organization_table.php new file mode 100644 index 000000000..55997f4db --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_user_assign_organization_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('org_id')->unsigned()->nullable()->index('org_id'); + $table->integer('user_id')->unsigned()->nullable()->index('user_id'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('user_assign_organization'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_users_table.php b/database/migrations2/2016_01_12_060642_create_users_table.php new file mode 100644 index 000000000..286892b9c --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_users_table.php @@ -0,0 +1,59 @@ +increments('id'); + $table->string('user_name'); + $table->string('first_name'); + $table->string('last_name'); + $table->boolean('gender'); + $table->string('email')->unique(); + $table->boolean('ban'); + $table->string('password', 60); + $table->integer('active'); + $table->string('ext'); + $table->string('phone_number'); + $table->string('mobile'); + $table->string('agent_sign'); + $table->string('account_type'); + $table->string('account_status'); + $table->integer('assign_group')->unsigned()->nullable()->index('assign_group_3'); + $table->integer('primary_dpt')->unsigned()->nullable()->index('primary_dpt_2'); + $table->string('agent_tzone'); + $table->string('daylight_save'); + $table->string('limit_access'); + $table->string('directory_listing'); + $table->string('vocation_mode'); + $table->string('company'); + $table->string('role'); + $table->string('internal_note'); + $table->string('profile_pic'); + $table->string('remember_token', 100)->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('users'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_version_check_table.php b/database/migrations2/2016_01_12_060642_create_version_check_table.php new file mode 100644 index 000000000..6ecd50ae9 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_version_check_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('current_version'); + $table->string('new_version'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('version_check'); + } + +} diff --git a/database/migrations2/2016_01_12_060642_create_widgets_table.php b/database/migrations2/2016_01_12_060642_create_widgets_table.php new file mode 100644 index 000000000..602b48c44 --- /dev/null +++ b/database/migrations2/2016_01_12_060642_create_widgets_table.php @@ -0,0 +1,35 @@ +integer('id', true); + $table->string('name', 30)->nullable(); + $table->text('value')->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('widgets'); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_canned_response_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_canned_response_table.php new file mode 100644 index 000000000..2021984a0 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_canned_response_table.php @@ -0,0 +1,35 @@ +foreign('user_id', 'canned_response_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('canned_response', function(Blueprint $table) + { + $table->dropForeign('canned_response_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_department_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_department_table.php new file mode 100644 index 000000000..4f0e4601b --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_department_table.php @@ -0,0 +1,35 @@ +foreign('sla', 'department_ibfk_1')->references('id')->on('sla_plan')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('department', function(Blueprint $table) + { + $table->dropForeign('department_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_emails_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_emails_table.php new file mode 100644 index 000000000..f75388154 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_emails_table.php @@ -0,0 +1,39 @@ +foreign('department', 'emails_ibfk_1')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority', 'emails_ibfk_2')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('help_topic', 'emails_ibfk_3')->references('id')->on('help_topic')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('emails', function(Blueprint $table) + { + $table->dropForeign('emails_ibfk_1'); + $table->dropForeign('emails_ibfk_2'); + $table->dropForeign('emails_ibfk_3'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_group_assign_department_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_group_assign_department_table.php new file mode 100644 index 000000000..63193fb6e --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_group_assign_department_table.php @@ -0,0 +1,37 @@ +foreign('group_id', 'group_assign_department_ibfk_1')->references('id')->on('groups')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('department_id', 'group_assign_department_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('group_assign_department', function(Blueprint $table) + { + $table->dropForeign('group_assign_department_ibfk_1'); + $table->dropForeign('group_assign_department_ibfk_2'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_help_topic_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_help_topic_table.php new file mode 100644 index 000000000..2854ed3f3 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_help_topic_table.php @@ -0,0 +1,43 @@ +foreign('custom_form', 'help_topic_ibfk_1')->references('id')->on('custom_forms')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('department', 'help_topic_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('ticket_status', 'help_topic_ibfk_3')->references('id')->on('ticket_status')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority', 'help_topic_ibfk_4')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('sla_plan', 'help_topic_ibfk_5')->references('id')->on('sla_plan')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('help_topic', function(Blueprint $table) + { + $table->dropForeign('help_topic_ibfk_1'); + $table->dropForeign('help_topic_ibfk_2'); + $table->dropForeign('help_topic_ibfk_3'); + $table->dropForeign('help_topic_ibfk_4'); + $table->dropForeign('help_topic_ibfk_5'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_article_relationship_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_article_relationship_table.php new file mode 100644 index 000000000..d8390609d --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_article_relationship_table.php @@ -0,0 +1,37 @@ +foreign('article_id', 'article_relationship_article_id_foreign')->references('id')->on('kb_article')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + $table->foreign('category_id', 'article_relationship_category_id_foreign')->references('id')->on('kb_category')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('kb_article_relationship', function(Blueprint $table) + { + $table->dropForeign('article_relationship_article_id_foreign'); + $table->dropForeign('article_relationship_category_id_foreign'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_comment_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_comment_table.php new file mode 100644 index 000000000..f8f1409ba --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_kb_comment_table.php @@ -0,0 +1,35 @@ +foreign('article_id', 'comment_article_id_foreign')->references('id')->on('kb_article')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('kb_comment', function(Blueprint $table) + { + $table->dropForeign('comment_article_id_foreign'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_organization_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_organization_table.php new file mode 100644 index 000000000..577737b7a --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_organization_table.php @@ -0,0 +1,35 @@ +foreign('head', 'organization_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('NO ACTION'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('organization', function(Blueprint $table) + { + $table->dropForeign('organization_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_settings_system_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_settings_system_table.php new file mode 100644 index 000000000..79f7a162e --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_settings_system_table.php @@ -0,0 +1,41 @@ +foreign('time_zone', 'settings_system_ibfk_1')->references('id')->on('timezone')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('time_farmat', 'settings_system_ibfk_2')->references('id')->on('time_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('date_format', 'settings_system_ibfk_3')->references('id')->on('date_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('date_time_format', 'settings_system_ibfk_4')->references('id')->on('date_time_format')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings_system', function(Blueprint $table) + { + $table->dropForeign('settings_system_ibfk_1'); + $table->dropForeign('settings_system_ibfk_2'); + $table->dropForeign('settings_system_ibfk_3'); + $table->dropForeign('settings_system_ibfk_4'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_team_assign_agent_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_team_assign_agent_table.php new file mode 100644 index 000000000..94603ea90 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_team_assign_agent_table.php @@ -0,0 +1,37 @@ +foreign('team_id', 'team_assign_agent_ibfk_1')->references('id')->on('teams')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('agent_id', 'team_assign_agent_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('team_assign_agent', function(Blueprint $table) + { + $table->dropForeign('team_assign_agent_ibfk_1'); + $table->dropForeign('team_assign_agent_ibfk_2'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_teams_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_teams_table.php new file mode 100644 index 000000000..2feb6e5b0 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_teams_table.php @@ -0,0 +1,35 @@ +foreign('team_lead', 'teams_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('NO ACTION'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('teams', function(Blueprint $table) + { + $table->dropForeign('teams_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_attachment_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_attachment_table.php new file mode 100644 index 000000000..ed630905a --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_attachment_table.php @@ -0,0 +1,35 @@ +foreign('thread_id', 'ticket_attachment_ibfk_1')->references('id')->on('ticket_thread')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_attachment', function(Blueprint $table) + { + $table->dropForeign('ticket_attachment_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_collaborator_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_collaborator_table.php new file mode 100644 index 000000000..0e333765d --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_collaborator_table.php @@ -0,0 +1,37 @@ +foreign('ticket_id', 'ticket_collaborator_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'ticket_collaborator_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_collaborator', function(Blueprint $table) + { + $table->dropForeign('ticket_collaborator_ibfk_1'); + $table->dropForeign('ticket_collaborator_ibfk_2'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_form_data_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_form_data_table.php new file mode 100644 index 000000000..aae4ccd73 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_form_data_table.php @@ -0,0 +1,35 @@ +foreign('ticket_id', 'ticket_form_data_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_form_data', function(Blueprint $table) + { + $table->dropForeign('ticket_form_data_ibfk_1'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_thread_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_thread_table.php new file mode 100644 index 000000000..701353ac1 --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_ticket_thread_table.php @@ -0,0 +1,39 @@ +foreign('ticket_id', 'ticket_thread_ibfk_1')->references('id')->on('tickets')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'ticket_thread_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('source', 'ticket_thread_ibfk_3')->references('id')->on('ticket_source')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('ticket_thread', function(Blueprint $table) + { + $table->dropForeign('ticket_thread_ibfk_1'); + $table->dropForeign('ticket_thread_ibfk_2'); + $table->dropForeign('ticket_thread_ibfk_3'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_tickets_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_tickets_table.php new file mode 100644 index 000000000..4c63cbcbb --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_tickets_table.php @@ -0,0 +1,51 @@ +foreign('user_id', 'tickets_ibfk_1')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('dept_id', 'tickets_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('team_id', 'tickets_ibfk_3')->references('id')->on('teams')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('priority_id', 'tickets_ibfk_4')->references('priority_id')->on('ticket_priority')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('sla', 'tickets_ibfk_5')->references('id')->on('sla_plan')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('help_topic_id', 'tickets_ibfk_6')->references('id')->on('help_topic')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('status', 'tickets_ibfk_7')->references('id')->on('ticket_status')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('source', 'tickets_ibfk_8')->references('id')->on('ticket_source')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('assigned_to', 'tickets_ibfk_9')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('tickets', function(Blueprint $table) + { + $table->dropForeign('tickets_ibfk_1'); + $table->dropForeign('tickets_ibfk_2'); + $table->dropForeign('tickets_ibfk_3'); + $table->dropForeign('tickets_ibfk_4'); + $table->dropForeign('tickets_ibfk_5'); + $table->dropForeign('tickets_ibfk_6'); + $table->dropForeign('tickets_ibfk_7'); + $table->dropForeign('tickets_ibfk_8'); + $table->dropForeign('tickets_ibfk_9'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_user_assign_organization_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_user_assign_organization_table.php new file mode 100644 index 000000000..3bcd0054e --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_user_assign_organization_table.php @@ -0,0 +1,37 @@ +foreign('org_id', 'user_assign_organization_ibfk_1')->references('id')->on('organization')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('user_id', 'user_assign_organization_ibfk_2')->references('id')->on('users')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('user_assign_organization', function(Blueprint $table) + { + $table->dropForeign('user_assign_organization_ibfk_1'); + $table->dropForeign('user_assign_organization_ibfk_2'); + }); + } + +} diff --git a/database/migrations2/2016_01_12_060645_add_foreign_keys_to_users_table.php b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_users_table.php new file mode 100644 index 000000000..750458fba --- /dev/null +++ b/database/migrations2/2016_01_12_060645_add_foreign_keys_to_users_table.php @@ -0,0 +1,37 @@ +foreign('assign_group', 'users_ibfk_1')->references('id')->on('groups')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + $table->foreign('primary_dpt', 'users_ibfk_2')->references('id')->on('department')->onUpdate('NO ACTION')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function(Blueprint $table) + { + $table->dropForeign('users_ibfk_1'); + $table->dropForeign('users_ibfk_2'); + }); + } + +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index a5cbd123a..e88da0b8e 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -3,9 +3,6 @@ use App\Model\helpdesk\Agent\Department; use App\Model\helpdesk\Agent\Groups; use App\Model\helpdesk\Agent\Teams; -use App\Model\helpdesk\Form\Form_details; -use App\Model\helpdesk\Form\Form_name; -use App\Model\helpdesk\Guest\Guest_note; use App\Model\helpdesk\Manage\Help_topic; use App\Model\helpdesk\Manage\Sla_plan; use App\Model\helpdesk\Settings\Ticket; @@ -14,33 +11,21 @@ use App\Model\helpdesk\Ticket\Ticket_Status; use App\Model\helpdesk\Utility\Date_format; use App\Model\helpdesk\Utility\Date_time_format; use App\Model\helpdesk\Utility\Languages; -use App\Model\helpdesk\Utility\Logs; use App\Model\helpdesk\Utility\MailboxProtocol; use App\Model\helpdesk\Utility\Timezones; use App\Model\helpdesk\Utility\Time_format; -use App\Model\helpdesk\Utility\Priority; use Illuminate\Database\Seeder; -use App\Model\helpdesk\Settings\Access; use App\Model\helpdesk\Settings\Alert; use App\Model\helpdesk\Settings\Company; use App\Model\helpdesk\Settings\Email; use App\Model\helpdesk\Settings\Responder; use App\Model\helpdesk\Settings\System; use App\Model\helpdesk\Ticket\Ticket_source; -use App\Model\helpdesk\Theme\Footer; -use App\Model\helpdesk\Theme\Footer2; -use App\Model\helpdesk\Theme\Footer3; -use App\Model\helpdesk\Theme\Footer4; use App\Model\helpdesk\Email\Smtp; use App\Model\helpdesk\Utility\Version_Check; -use App\Model\kb\Options; use App\Model\helpdesk\Utility\Log_notification; - +use App\Model\helpdesk\Theme\Widgets; // Knowledge base - -use App\Model\kb\Social; -use App\Model\kb\Side1; -use App\Model\kb\Side2; use App\Model\kb\Settings; class DatabaseSeeder extends Seeder { @@ -52,9 +37,40 @@ class DatabaseSeeder extends Seeder { */ public function run() { + /* Date time format */ + $date_time_formats = [ + 'd/m/Y H:i:s', + 'd.m.Y H:i:s', + 'd-m-Y H:i:s', + 'm/d/Y H:i:s', + 'm.d.Y H:i:s', + 'm-d-Y H:i:s', + 'Y/m/d H:i:s', + 'Y.m.d H:i:s', + 'Y-m-d H:i:s']; + + foreach ($date_time_formats as $date_time_format) { + Date_time_format::create(['format' => $date_time_format]); + } + /* Date format */ + $date_formats = [ + 'dd/mm/yyyy', + 'dd-mm-yyyy', + 'dd.mm.yyyy', + 'mm/dd/yyyy', + 'mm:dd:yyyy', + 'mm-dd-yyyy', + 'yyyy/mm/dd', + 'yyyy.mm.dd', + 'yyyy-mm-dd']; + + foreach ($date_formats as $date_format) { + Date_format::create(['format' => $date_format]); + } + /* Time format */ Time_format::create(array('format' => 'H:i:s')); Time_format::create(array('format' => 'H.i.s')); - + /* Timezone */ $timezone = ['Pacific/Midway' => '(GMT-11:00) Midway Island', 'US/Samoa' => '(GMT-11:00) Samoa', 'US/Hawaii' => '(GMT-10:00) Hawaii', @@ -172,36 +188,32 @@ class DatabaseSeeder extends Seeder { foreach ($timezone as $name => $location) { Timezones::create(array('name' => $name, 'location' => $location)); } - + /* Ticket status */ Ticket_status::create(array('name' => 'Open', 'state' => 'open', 'mode' => '3', 'message'=>'Ticket have been Reopened by', 'flags' => '0', 'sort' => '1', 'properties' => 'Open tickets.')); Ticket_status::create(array('name' => 'Resolved', 'state' => 'closed', 'mode' => '1','message'=>'Ticket have been Resolved by', 'flags' => '0', 'sort' => '2', 'properties' => 'Resolved tickets.')); Ticket_status::create(array('name' => 'Closed', 'state' => 'closed', 'mode' => '3','message'=>'Ticket have been Closed by', 'flags' => '0', 'sort' => '3', 'properties' => 'Closed tickets. Tickets will still be accessible on client and staff panels.')); Ticket_status::create(array('name' => 'Archived', 'state' => 'archived', 'mode' => '3','message'=>'Ticket have been Archived by', 'flags' => '0', 'sort' => '4', 'properties' => 'Tickets only adminstratively available but no longer accessible on ticket queues and client panel.')); Ticket_status::create(array('name' => 'Deleted', 'state' => 'deleted', 'mode' => '3','message'=>'Ticket have been Deleted by', 'flags' => '0', 'sort' => '5', 'properties' => 'Tickets queued for deletion. Not accessible on ticket queues.')); - - Ticket::create(array('num_format' => '#ABCD 1234 1234567', 'num_sequence' => '0', 'priority' => 'low', 'sla' => '12 Hours', 'help_topic' => 'support query')); - + /* Ticket priority */ Ticket_priority::create(array('priority' => 'low', 'priority_desc' => 'Low', 'priority_color' => 'info', 'priority_urgency' => '4', 'ispublic' => '1')); Ticket_priority::create(array('priority' => 'normal', 'priority_desc' => 'Normal', 'priority_color' => 'info', 'priority_urgency' => '3', 'ispublic' => '1')); Ticket_priority::create(array('priority' => 'high', 'priority_desc' => 'High', 'priority_color' => 'warning', 'priority_urgency' => '2', 'ispublic' => '1')); Ticket_priority::create(array('priority' => 'emergency', 'priority_desc' => 'Emergency', 'priority_color' => 'danger', 'priority_urgency' => '1', 'ispublic' => '1')); - + /* SLA Plans */ Sla_plan::create(array('name' => 'Sla 1', 'grace_period' => '6 Hours', 'status' => '1')); Sla_plan::create(array('name' => 'Sla 2', 'grace_period' => '12 Hours', 'status' => '1')); Sla_plan::create(array('name' => 'Sla 3', 'grace_period' => '24 Hours', 'status' => '1')); + /* Mailbox protocol */ + $mailbox = [ + 'IMAP' => '/imap', + 'IMAP+SSL' => '/imap/ssl', + 'IMAP+TLS' => '/imap/tls', + 'IMAP+SSL/No-validate' => '/imap/ssl/novalidate-cert']; - $mailbox = ['IMAP+SSl', 'IMAP', 'POP+SSL', 'POP']; - - foreach ($mailbox as $protocol) { - MailboxProtocol::create(array('name' => $protocol)); + foreach ($mailbox as $name => $value) { + MailboxProtocol::create(['name' => $name, 'value' => $value]); } - - $logs = ['WARN', 'DEBUG', 'ERROR']; - - foreach ($logs as $log) { - Logs::create(['level' => $log]); - } - + /* Languages */ $languages = [ 'English' => 'en', 'Italian' => 'it', @@ -216,129 +228,61 @@ class DatabaseSeeder extends Seeder { foreach ($languages as $language => $locale) { Languages::create(['name' => $language, 'locale' => $locale]); } - - Guest_note::create(['heading' => 'Welcome to the Support Center', 'content' => 'Hello this is a new helpdesk support system ans it is in the development phase.']); - - Form_name::create(['name' => 'form', 'status' => '1', 'no_of_fields' => '5']); - - $date_time_formats = [ - 'd/m/Y H:i:s', - 'd.m.Y H:i:s', - 'd-m-Y H:i:s', - 'm/d/Y H:i:s', - 'm.d.Y H:i:s', - 'm-d-Y H:i:s', - 'Y/m/d H:i:s', - 'Y.m.d H:i:s', - 'Y-m-d H:i:s']; - - foreach ($date_time_formats as $date_time_format) { - Date_time_format::create(['format' => $date_time_format]); - } - - $date_formats = [ - 'dd/mm/yyyy', - 'dd-mm-yyyy', - 'dd.mm.yyyy', - 'mm/dd/yyyy', - 'mm:dd:yyyy', - 'mm-dd-yyyy', - 'dd-mm-yyyy', - 'yyyy/mm/dd', - 'yyyy.mm.dd', - 'yyyy-mm-dd']; - - foreach ($date_formats as $date_format) { - Date_format::create(['format' => $date_format]); - } - - Teams::create(array('name' => 'Level 1 Support')); + /* Teams */ + Teams::create(array('name' => 'Level 1 Support','status' => '1')); Teams::create(array('name' => 'Level 2 Support')); Teams::create(array('name' => 'Developer')); - - Groups::create(array('name' => 'Group A', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '1', 'can_post_ticket' => '1', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_manage_faq' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); - Groups::create(array('name' => 'Group B', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_manage_faq' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); - Groups::create(array('name' => 'Group C', 'group_status' => '1', 'can_create_ticket' => '0', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '0', 'can_transfer_ticket' => '0', 'can_delete_ticket' => '0', 'can_ban_email' => '0', 'can_manage_canned' => '0', 'can_manage_faq' => '0', 'can_view_agent_stats' => '0', 'department_access' => '0')); - - Department::create(array('name' => 'Support')); - Department::create(array('name' => 'Sales')); - Department::create(array('name' => 'Operation')); - - // Access::create(array('password_expire' => '1 Months', 'reg_method' => 'disable')); - // Access::create(array('password_expire' => '2 Months', 'reg_method' => 'private')); - // Access::create(array('password_expire' => '6 Months', 'reg_method' => 'public')); - - // Company::create(array('company_name' => 'D company', 'website' => 'dcompany.org', 'phone' => '8606574126')); - - // Emails::create(array('email_address' => 'maintanance@dcompany.com', 'email_name' => 'maintain', 'department' => 'maintanance', 'priority' => 'low', 'help_topic' => 'maintanance query', 'user_name' => 'maintanance')); - - help_topic::create(array('topic' => 'Support query', 'parent_topic' => 'Support query', 'custom_form' => '1', 'department' => '1', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); - help_topic::create(array('topic' => 'Sales query', 'parent_topic' => 'Sale query', 'custom_form' => '1', 'department' => '2', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); - help_topic::create(array('topic' => 'Operational query', 'parent_topic' => 'Operational query', 'custom_form' => '1', 'department' => '3', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); - - Priority::create(array('name' => 'low')); - Priority::create(array('name' => 'high')); - + /* Groups */ + Groups::create(array('name' => 'Group A', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '1', 'can_post_ticket' => '1', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); + Groups::create(array('name' => 'Group B', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); + Groups::create(array('name' => 'Group C', 'group_status' => '1', 'can_create_ticket' => '0', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '0', 'can_transfer_ticket' => '0', 'can_delete_ticket' => '0', 'can_ban_email' => '0', 'can_manage_canned' => '0', 'can_view_agent_stats' => '0', 'department_access' => '0')); + /* Department */ + Department::create(array('name' => 'Support', 'sla'=>'1')); + Department::create(array('name' => 'Sales', 'sla'=>'1')); + Department::create(array('name' => 'Operation', 'sla'=>'1')); + /* Helptopic */ + help_topic::create(array('topic' => 'Support query', 'department' => '1', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); + help_topic::create(array('topic' => 'Sales query', 'department' => '2', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '0', 'type' => '1', 'auto_response' => '0')); + help_topic::create(array('topic' => 'Operational query', 'department' => '3', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '0', 'type' => '1', 'auto_response' => '0')); + /* Daily notification log */ Log_notification::create(['log'=>'NOT-1']); - - Access::create(array('id' => '1')); - Alert::create(array('id' => '1')); + /* System complete settings */ + Alert::create(['id' => '1','ticket_status' =>'1', 'ticket_admin_email' => '1', 'assignment_status' => '1', 'assignment_assigned_status' => '1', 'assignment_assigned_agent' => '1']); Company::create(array('id' => '1')); - Email::create(array('id' => '1')); - Responder::create(array('id' => '1')); - System::create(array('id' => '1')); - Footer::create(array('id' => '1')); - Footer2::create(array('id' => '1')); - Footer3::create(array('id' => '1')); - Footer4::create(array('id' => '1')); - // Ticket::create(array('id' => '1')); - + Email::create(array('id' => '1','email_fetching'=>'1', 'notification_cron' => '1', 'all_emails' => '1', 'email_collaborator' => '1', 'attachment' => '1')); + Responder::create(array('id' => '1','new_ticket' => '1' , 'agent_new_ticket' => '1')); + System::create(array('id' => '1', 'status' => '1', 'department' => '1', 'date_time_format' => '1', 'time_zone' => '32')); + Ticket::create(array('num_format' => '#ABCD 1234 1234567', 'num_sequence' => '0', 'priority' => '1', 'sla' => '2', 'help_topic' => '1','status' => '1')); + /* Ticket source */ Ticket_source::create(array('name'=>'web', 'value'=>'Web')); Ticket_source::create(array('name'=>'email', 'value'=>'E-mail')); Ticket_source::create(array('name'=>'agent', 'value'=>'Agent Panel')); - + /* Mail configuration */ Smtp::create(array('id' => '1')); - + /* Version check */ Version_Check::create(['id'=>'1']); - - - $option = array( - - 'gmt_offset', - 'date_format', - 'time_format', - 'date_time_format', - 'sitename', - 'sitedescription', - 'admin_email', - 'template', - 'upload_url_path', - 'timezone_string', - 'siteurl', - 'home', - 'start_of_week', - 'language', - 'port', - 'host', - 'encryption', - 'username', - 'password', - 'footer', - 'uselogo', - 'logo', - - ); - - foreach ($option as $name) { - Options::create(array('option_name' => $name)); - } - - Social::create(['id'=>'1']); - Side1::create(['id'=>'1']); - Side2::create(['id'=>'1']); - Settings::create(['id'=>'id','paagination' => '10']); - - - + /* System widgets */ + Widgets::create(['id'=>'1','name'=>'footer1']); + Widgets::create(['id'=>'2','name'=>'footer2']); + Widgets::create(['id'=>'3','name'=>'footer3']); + Widgets::create(['id'=>'4','name'=>'footer4']); + Widgets::create(['id'=>'5','name'=>'side1']); + Widgets::create(['id'=>'6','name'=>'side2']); + Widgets::create(['id'=>'7','name'=>'linkedin']); + Widgets::create(['id'=>'8','name'=>'stumble']); + Widgets::create(['id'=>'9','name'=>'google']); + Widgets::create(['id'=>'10','name'=>'deviantart']); + Widgets::create(['id'=>'11','name'=>'flickr']); + Widgets::create(['id'=>'12','name'=>'skype']); + Widgets::create(['id'=>'13','name'=>'rss']); + Widgets::create(['id'=>'14','name'=>'twitter']); + Widgets::create(['id'=>'15','name'=>'facebook']); + Widgets::create(['id'=>'16','name'=>'youtube']); + Widgets::create(['id'=>'17','name'=>'vimeo']); + Widgets::create(['id'=>'18','name'=>'pinterest']); + Widgets::create(['id'=>'19','name'=>'dribbble']); + Widgets::create(['id'=>'20','name'=>'instagram']); + /* Knowledge base setting */ + Settings::create(['id'=>'id','pagination' => '10']); } } \ No newline at end of file diff --git a/database/seeds2/.gitkeep b/database/seeds2/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/database/seeds2/DatabaseSeeder.php b/database/seeds2/DatabaseSeeder.php new file mode 100644 index 000000000..26431ff71 --- /dev/null +++ b/database/seeds2/DatabaseSeeder.php @@ -0,0 +1,291 @@ + $date_time_format]); + } + + $date_formats = [ + 'dd/mm/yyyy', + 'dd-mm-yyyy', + 'dd.mm.yyyy', + 'mm/dd/yyyy', + 'mm:dd:yyyy', + 'mm-dd-yyyy', + 'dd-mm-yyyy', + 'yyyy/mm/dd', + 'yyyy.mm.dd', + 'yyyy-mm-dd']; + + foreach ($date_formats as $date_format) { + Date_format::create(['format' => $date_format]); + } + + Time_format::create(array('format' => 'H:i:s')); + Time_format::create(array('format' => 'H.i.s')); + + $timezone = ['Pacific/Midway' => '(GMT-11:00) Midway Island', + 'US/Samoa' => '(GMT-11:00) Samoa', + 'US/Hawaii' => '(GMT-10:00) Hawaii', + 'US/Alaska' => '(GMT-09:00) Alaska', + 'US/Pacific' => '(GMT-08:00) Pacific Time (US & Canada)', + 'America/Tijuana' => '(GMT-08:00) Tijuana', + 'US/Arizona' => '(GMT-07:00) Arizona', + 'US/Mountain' => '(GMT-07:00) Mountain Time (US & Canada)', + 'America/Chihuahua' => '(GMT-07:00) Chihuahua', + 'America/Mazatlan' => '(GMT-07:00) Mazatlan', + 'America/Mexico_City' => '(GMT-06:00) Mexico City', + 'America/Monterrey' => '(GMT-06:00) Monterrey', + 'Canada/Saskatchewan' => '(GMT-06:00) Saskatchewan', + 'US/Central' => '(GMT-06:00) Central Time (US & Canada)', + 'US/Eastern' => '(GMT-05:00) Eastern Time (US & Canada)', + 'US/East-Indiana' => '(GMT-05:00) Indiana (East)', + 'America/Bogota' => '(GMT-05:00) Bogota', + 'America/Lima' => '(GMT-05:00) Lima', + 'America/Caracas' => '(GMT-04:30) Caracas', + 'Canada/Atlantic' => '(GMT-04:00) Atlantic Time (Canada)', + 'America/La_Paz' => '(GMT-04:00) La Paz', + 'America/Santiago' => '(GMT-04:00) Santiago', + 'Canada/Newfoundland' => '(GMT-03:30) Newfoundland', + 'America/Buenos_Aires' => '(GMT-03:00) Buenos Aires', + 'Greenland' => '(GMT-03:00) Greenland', + 'Atlantic/Stanley' => '(GMT-02:00) Stanley', + 'Atlantic/Azores' => '(GMT-01:00) Azores', + 'Atlantic/Cape_Verde' => '(GMT-01:00) Cape Verde Is.', + 'Africa/Casablanca' => '(GMT) Casablanca', + 'Europe/Dublin' => '(GMT) Dublin', + 'Europe/Lisbon' => '(GMT) Lisbon', + 'Europe/London' => '(GMT) London', + 'Africa/Monrovia' => '(GMT) Monrovia', + 'Europe/Amsterdam' => '(GMT+01:00) Amsterdam', + 'Europe/Belgrade' => '(GMT+01:00) Belgrade', + 'Europe/Berlin' => '(GMT+01:00) Berlin', + 'Europe/Bratislava' => '(GMT+01:00) Bratislava', + 'Europe/Brussels' => '(GMT+01:00) Brussels', + 'Europe/Budapest' => '(GMT+01:00) Budapest', + 'Europe/Copenhagen' => '(GMT+01:00) Copenhagen', + 'Europe/Ljubljana' => '(GMT+01:00) Ljubljana', + 'Europe/Madrid' => '(GMT+01:00) Madrid', + 'Europe/Paris' => '(GMT+01:00) Paris', + 'Europe/Prague' => '(GMT+01:00) Prague', + 'Europe/Rome' => '(GMT+01:00) Rome', + 'Europe/Sarajevo' => '(GMT+01:00) Sarajevo', + 'Europe/Skopje' => '(GMT+01:00) Skopje', + 'Europe/Stockholm' => '(GMT+01:00) Stockholm', + 'Europe/Vienna' => '(GMT+01:00) Vienna', + 'Europe/Warsaw' => '(GMT+01:00) Warsaw', + 'Europe/Zagreb' => '(GMT+01:00) Zagreb', + 'Europe/Athens' => '(GMT+02:00) Athens', + 'Europe/Bucharest' => '(GMT+02:00) Bucharest', + 'Africa/Cairo' => '(GMT+02:00) Cairo', + 'Africa/Harare' => '(GMT+02:00) Harare', + 'Europe/Helsinki' => '(GMT+02:00) Helsinki', + 'Europe/Istanbul' => '(GMT+02:00) Istanbul', + 'Asia/Jerusalem' => '(GMT+02:00) Jerusalem', + 'Europe/Kiev' => '(GMT+02:00) Kyiv', + 'Europe/Minsk' => '(GMT+02:00) Minsk', + 'Europe/Riga' => '(GMT+02:00) Riga', + 'Europe/Sofia' => '(GMT+02:00) Sofia', + 'Europe/Tallinn' => '(GMT+02:00) Tallinn', + 'Europe/Vilnius' => '(GMT+02:00) Vilnius', + 'Asia/Baghdad' => '(GMT+03:00) Baghdad', + 'Asia/Kuwait' => '(GMT+03:00) Kuwait', + 'Africa/Nairobi' => '(GMT+03:00) Nairobi', + 'Asia/Riyadh' => '(GMT+03:00) Riyadh', + 'Asia/Tehran' => '(GMT+03:30) Tehran', + 'Europe/Moscow' => '(GMT+04:00) Moscow', + 'Asia/Baku' => '(GMT+04:00) Baku', + 'Europe/Volgograd' => '(GMT+04:00) Volgograd', + 'Asia/Muscat' => '(GMT+04:00) Muscat', + 'Asia/Tbilisi' => '(GMT+04:00) Tbilisi', + 'Asia/Yerevan' => '(GMT+04:00) Yerevan', + 'Asia/Kabul' => '(GMT+04:30) Kabul', + 'Asia/Karachi' => '(GMT+05:00) Karachi', + 'Asia/Tashkent' => '(GMT+05:00) Tashkent', + 'Asia/Kolkata' => '(GMT+05:30) Kolkata', + 'Asia/Kathmandu' => '(GMT+05:45) Kathmandu', + 'Asia/Yekaterinburg' => '(GMT+06:00) Ekaterinburg', + 'Asia/Almaty' => '(GMT+06:00) Almaty', + 'Asia/Dhaka' => '(GMT+06:00) Dhaka', + 'Asia/Novosibirsk' => '(GMT+07:00) Novosibirsk', + 'Asia/Bangkok' => '(GMT+07:00) Bangkok', + 'Asia/Ho_Chi_Minh' => '(GMT+07.00) Ho Chi Minh', + 'Asia/Jakarta' => '(GMT+07:00) Jakarta', + 'Asia/Krasnoyarsk' => '(GMT+08:00) Krasnoyarsk', + 'Asia/Chongqing' => '(GMT+08:00) Chongqing', + 'Asia/Hong_Kong' => '(GMT+08:00) Hong Kong', + 'Asia/Kuala_Lumpur' => '(GMT+08:00) Kuala Lumpur', + 'Australia/Perth' => '(GMT+08:00) Perth', + 'Asia/Singapore' => '(GMT+08:00) Singapore', + 'Asia/Taipei' => '(GMT+08:00) Taipei', + 'Asia/Ulaanbaatar' => '(GMT+08:00) Ulaan Bataar', + 'Asia/Urumqi' => '(GMT+08:00) Urumqi', + 'Asia/Irkutsk' => '(GMT+09:00) Irkutsk', + 'Asia/Seoul' => '(GMT+09:00) Seoul', + 'Asia/Tokyo' => '(GMT+09:00) Tokyo', + 'Australia/Adelaide' => '(GMT+09:30) Adelaide', + 'Australia/Darwin' => '(GMT+09:30) Darwin', + 'Asia/Yakutsk' => '(GMT+10:00) Yakutsk', + 'Australia/Brisbane' => '(GMT+10:00) Brisbane', + 'Australia/Canberra' => '(GMT+10:00) Canberra', + 'Pacific/Guam' => '(GMT+10:00) Guam', + 'Australia/Hobart' => '(GMT+10:00) Hobart', + 'Australia/Melbourne' => '(GMT+10:00) Melbourne', + 'Pacific/Port_Moresby' => '(GMT+10:00) Port Moresby', + 'Australia/Sydney' => '(GMT+10:00) Sydney', + 'Asia/Vladivostok' => '(GMT+11:00) Vladivostok', + 'Asia/Magadan' => '(GMT+12:00) Magadan', + 'Pacific/Auckland' => '(GMT+12:00) Auckland', + 'Pacific/Fiji' => '(GMT+12:00) Fiji']; + + foreach ($timezone as $name => $location) { + Timezones::create(array('name' => $name, 'location' => $location)); + } + + Ticket_status::create(array('name' => 'Open', 'state' => 'open', 'mode' => '3', 'message'=>'Ticket have been Reopened by', 'flags' => '0', 'sort' => '1', 'properties' => 'Open tickets.')); + Ticket_status::create(array('name' => 'Resolved', 'state' => 'closed', 'mode' => '1','message'=>'Ticket have been Resolved by', 'flags' => '0', 'sort' => '2', 'properties' => 'Resolved tickets.')); + Ticket_status::create(array('name' => 'Closed', 'state' => 'closed', 'mode' => '3','message'=>'Ticket have been Closed by', 'flags' => '0', 'sort' => '3', 'properties' => 'Closed tickets. Tickets will still be accessible on client and staff panels.')); + Ticket_status::create(array('name' => 'Archived', 'state' => 'archived', 'mode' => '3','message'=>'Ticket have been Archived by', 'flags' => '0', 'sort' => '4', 'properties' => 'Tickets only adminstratively available but no longer accessible on ticket queues and client panel.')); + Ticket_status::create(array('name' => 'Deleted', 'state' => 'deleted', 'mode' => '3','message'=>'Ticket have been Deleted by', 'flags' => '0', 'sort' => '5', 'properties' => 'Tickets queued for deletion. Not accessible on ticket queues.')); + + Ticket::create(array('num_format' => '#ABCD 1234 1234567', 'num_sequence' => '0', 'priority' => 'low', 'sla' => '12 Hours', 'help_topic' => 'support query')); + + Ticket_priority::create(array('priority' => 'low', 'priority_desc' => 'Low', 'priority_color' => 'info', 'priority_urgency' => '4', 'ispublic' => '1')); + Ticket_priority::create(array('priority' => 'normal', 'priority_desc' => 'Normal', 'priority_color' => 'info', 'priority_urgency' => '3', 'ispublic' => '1')); + Ticket_priority::create(array('priority' => 'high', 'priority_desc' => 'High', 'priority_color' => 'warning', 'priority_urgency' => '2', 'ispublic' => '1')); + Ticket_priority::create(array('priority' => 'emergency', 'priority_desc' => 'Emergency', 'priority_color' => 'danger', 'priority_urgency' => '1', 'ispublic' => '1')); + + Sla_plan::create(array('name' => 'Sla 1', 'grace_period' => '6 Hours', 'status' => '1')); + Sla_plan::create(array('name' => 'Sla 2', 'grace_period' => '12 Hours', 'status' => '1')); + Sla_plan::create(array('name' => 'Sla 3', 'grace_period' => '24 Hours', 'status' => '1')); + + $mailbox = ['IMAP' => '/imap', 'IMAP+SSL' => '/imap/ssl', 'IMAP+TLS' => '/imap/tls', 'IMAP+SSL/No-validate' => '/imap/ssl/novalidate-cert',]; + + foreach ($mailbox as $name => $value) { + MailboxProtocol::create(array('name' => $name, 'value' => $value)); + } + + $languages = [ + 'English' => 'en', + 'Italian' => 'it', + 'German' => 'de', + 'French' => 'fr', + 'Brazilian Portuguese' => 'pt_BR', + 'Dutch' => 'nl', + 'Spanish' => 'es', + 'Norwegian' => 'nb_NO', + 'Danish' => 'da']; + + foreach ($languages as $language => $locale) { + Languages::create(['name' => $language, 'locale' => $locale]); + } + + + Teams::create(array('name' => 'Level 1 Support')); + Teams::create(array('name' => 'Level 2 Support')); + Teams::create(array('name' => 'Developer')); + + Groups::create(array('name' => 'Group A', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '1', 'can_post_ticket' => '1', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); + Groups::create(array('name' => 'Group B', 'group_status' => '1', 'can_create_ticket' => '1', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '1', 'can_transfer_ticket' => '1', 'can_delete_ticket' => '1', 'can_ban_email' => '1', 'can_manage_canned' => '1', 'can_view_agent_stats' => '1', 'department_access' => '1')); + Groups::create(array('name' => 'Group C', 'group_status' => '1', 'can_create_ticket' => '0', 'can_edit_ticket' => '0', 'can_post_ticket' => '0', 'can_close_ticket' => '1', 'can_assign_ticket' => '0', 'can_transfer_ticket' => '0', 'can_delete_ticket' => '0', 'can_ban_email' => '0', 'can_manage_canned' => '0', 'can_view_agent_stats' => '0', 'department_access' => '0')); + + Department::create(array('name' => 'Support', 'sla'=>'1')); + Department::create(array('name' => 'Sales', 'sla'=>'1')); + Department::create(array('name' => 'Operation', 'sla'=>'1')); + + help_topic::create(array('topic' => 'Support query', 'department' => '1', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); + help_topic::create(array('topic' => 'Sales query', 'department' => '2', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); + help_topic::create(array('topic' => 'Operational query', 'department' => '3', 'ticket_status' => '1', 'priority' => '2', 'sla_plan' => '1', 'ticket_num_format' => '1', 'status' => '1', 'type' => '1', 'auto_response' => '0')); + + Log_notification::create(['log'=>'NOT-1']); + + Alert::create(array('id' => '1')); + Company::create(array('id' => '1')); + Email::create(array('id' => '1')); + Responder::create(array('id' => '1')); + System::create(array('id' => '1')); + + Ticket_source::create(array('name'=>'web', 'value'=>'Web')); + Ticket_source::create(array('name'=>'email', 'value'=>'E-mail')); + Ticket_source::create(array('name'=>'agent', 'value'=>'Agent Panel')); + + Smtp::create(array('id' => '1')); + + Version_Check::create(['id'=>'1']); + + + Widgets::create(['id'=>'1','name'=>'footer1']); + Widgets::create(['id'=>'2','name'=>'footer2']); + Widgets::create(['id'=>'3','name'=>'footer3']); + Widgets::create(['id'=>'4','name'=>'footer4']); + Widgets::create(['id'=>'5','name'=>'side1']); + Widgets::create(['id'=>'6','name'=>'side2']); + Widgets::create(['id'=>'7','name'=>'linkedin']); + Widgets::create(['id'=>'8','name'=>'stumble']); + Widgets::create(['id'=>'9','name'=>'google']); + Widgets::create(['id'=>'10','name'=>'deviantart']); + Widgets::create(['id'=>'11','name'=>'flickr']); + Widgets::create(['id'=>'12','name'=>'skype']); + Widgets::create(['id'=>'13','name'=>'rss']); + Widgets::create(['id'=>'14','name'=>'twitter']); + Widgets::create(['id'=>'15','name'=>'facebook']); + Widgets::create(['id'=>'16','name'=>'youtube']); + Widgets::create(['id'=>'17','name'=>'vimeo']); + Widgets::create(['id'=>'18','name'=>'pinterest']); + Widgets::create(['id'=>'19','name'=>'dribbble']); + Widgets::create(['id'=>'20','name'=>'instagram']); + + Settings::create(['id'=>'id','pagination' => '10']); + + + + } +} \ No newline at end of file diff --git a/public/uploads/en.zip b/public/uploads/en.zip index 0583c8be6..4d371cc9d 100644 Binary files a/public/uploads/en.zip and b/public/uploads/en.zip differ diff --git a/resources/lang/en/lang.php b/resources/lang/en/lang.php index 3066f68ef..da026ba97 100644 --- a/resources/lang/en/lang.php +++ b/resources/lang/en/lang.php @@ -74,6 +74,7 @@ return array( 'recover_passord' => 'Recover Password', 'send_password_reset_link' => 'Send pasword Reset Link', 'enter_email_to_reset_password' => 'Enter E-mail to reset password', + 'link' => 'Link', /* |---------------------------------------------------------------------------------------- @@ -722,7 +723,7 @@ return array( */ 'canned_response' => 'Canned Response', 'create_canned_response' => 'Create Canned Response', - 'surrender' => 'surrender', + 'surrender' => 'Surrender', 'view' => 'View', diff --git a/resources/views/themes/default1/admin/helpdesk/agent/agents/create.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/agents/create.blade.php index 437fcb705..615f906e1 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/agents/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/agents/create.blade.php @@ -127,40 +127,41 @@ class="active"

    {{Lang::get('lang.account_status_setting')}}

    -
    - -
    +
    + +
    - {!! Form::label('role',Lang::get('lang.role')) !!} - {!! $errors->first('role', ':message') !!} -
    -
    - {!! Form::radio('role','admin',true) !!}{{Lang::get('lang.admin')}} -
    -
    - {!! Form::radio('role','agent',null) !!}{{Lang::get('lang.agent')}} + {!! Form::label('active',Lang::get('lang.status')) !!} + {!! $errors->first('active', ':message') !!} +
    +
    + {!! Form::radio('active','1',true) !!}{{Lang::get('lang.active')}} +
    +
    + {!! Form::radio('active','0',null) !!}{{Lang::get('lang.inactive')}} +
    +
    -
    - -
    - {!! Form::label('account_type',Lang::get('lang.account_type')) !!} - {!! $errors->first('account_type', ':message') !!} -
    -
    - {!! Form::radio('account_type','1',true) !!}{{Lang::get('lang.active')}} -
    -
    - {!! Form::radio('account_type','0',null) !!}{{Lang::get('lang.locked')}} + +
    + + {!! Form::label('role',Lang::get('lang.role')) !!} + {!! $errors->first('role', ':message') !!} +
    +
    + {!! Form::radio('role','admin',true) !!}{{Lang::get('lang.admin')}} +
    +
    + {!! Form::radio('role','agent',null) !!}{{Lang::get('lang.agent')}} +
    -
    -
    @@ -170,7 +171,7 @@ class="active" {!! Form::label('assign_group',Lang::get('lang.assigned_group')) !!} {!! $errors->first('assign_group', ':message') !!} - {!!Form::select('assign_group',[''=>'Select a Group','Groups'=>$groups->lists('name','name')],null,['class' => 'form-control select']) !!} + {!!Form::select('assign_group',[''=>'Select a Group','Groups'=>$groups->lists('name','id')],null,['class' => 'form-control select']) !!}
    @@ -179,7 +180,7 @@ class="active" {!! Form::label('primary_dpt',Lang::get('lang.primary_department')) !!} {!! $errors->first('primary_dpt', ':message') !!} - {!! Form::select('primary_dpt', [''=>'Select a Department','Departments'=>$departments->lists('name','name')],null,['class' => 'form-control select']) !!} + {!! Form::select('primary_dpt', [''=>'Select a Department','Departments'=>$departments->lists('name','id')],null,['class' => 'form-control select']) !!}
    @@ -188,7 +189,7 @@ class="active" {!! Form::label('agent_tzone',Lang::get('lang.agent_time_zone')) !!} {!! $errors->first('agent_tzone', ':message') !!} - {!! Form::select('agent_tzone', [''=>'Select a Time Zone', 'Time Zones'=>$timezones->lists('name','name')],null,['class' => 'form-control select']) !!} + {!! Form::select('agent_tzone', [''=>'Select a Time Zone', 'Time Zones'=>$timezones->lists('name','id')],null,['class' => 'form-control select']) !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/agent/agents/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/agents/edit.blade.php index 0c1507556..c058f4402 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/agents/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/agents/edit.blade.php @@ -132,6 +132,21 @@ class="active"
    + +
    + + {!! Form::label('active',Lang::get('lang.status')) !!} + {!! $errors->first('active', ':message') !!} +
    +
    + {!! Form::radio('active','1',true) !!}{{Lang::get('lang.active')}} +
    +
    + {!! Form::radio('active','0',null) !!}{{Lang::get('lang.inactive')}} +
    +
    + +
    @@ -146,21 +161,7 @@ class="active"
    - -
    - - {!! Form::label('account_type',Lang::get('lang.account_type')) !!} - {!! $errors->first('account_type', ':message') !!} -
    -
    - {!! Form::radio('account_type','1',true) !!}{{Lang::get('lang.active')}} -
    -
    - {!! Form::radio('account_type','0',null) !!}{{Lang::get('lang.locked')}} -
    -
    - -
    + {{--
    --}} @@ -210,21 +211,21 @@ class="active"
    {!! Form::label('assign_group',Lang::get('lang.assigned_group')) !!} {!! $errors->first('assign_group', ':message') !!} - {!!Form::select('assign_group', [''=>'Select a Group','Groups'=>$groups->lists('name','name')],null,['class' => 'form-control select']) !!} + {!!Form::select('assign_group', [''=>'Select a Group','Groups'=>$groups->lists('name','id')],null,['class' => 'form-control select']) !!}
    {!! Form::label('primary_dpt',Lang::get('lang.primary_department')) !!} {!! $errors->first('primary_dpt', ':message') !!} - {!!Form::select('primary_dpt', $departments->lists('name','name'),null,['class' => 'form-control select']) !!} + {!!Form::select('primary_dpt', $departments->lists('name','id'),null,['class' => 'form-control select']) !!}
    {!! Form::label('agent_tzone',Lang::get('lang.agent_time_zone')) !!} {!! $errors->first('agent_tzone', ':message') !!} - {!!Form::select('agent_tzone', $timezones->lists('name','name'),null,['class' => 'form-control select']) !!} + {!!Form::select('agent_tzone', $timezones->lists('name','id'),null,['class' => 'form-control select']) !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/agent/agents/index.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/agents/index.blade.php index 842bafe13..d55f07cd2 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/agents/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/agents/index.blade.php @@ -35,7 +35,7 @@ class="active"

    {!! Lang::get('lang.staffs') !!}

    {{Lang::get('lang.create_agent')}}
    -
    +
    orderBy('id', 'ASC')->paginate(20); ?> @@ -59,7 +59,7 @@ class="active"
    @endif - +
    @@ -86,24 +86,26 @@ class="active" } ?> - + + assign_group)->first(); + $department = App\Model\helpdesk\Agent\Department::whereId($use->primary_dpt)->first(); + ?> + + + {{-- --}} @@ -111,9 +113,7 @@ class="active" @endforeach
    {{Lang::get('lang.name')}} {{Lang::get('lang.user_name')}} - @if($use->account_type=='1') + @if($use->active=='1') {{'Active'}} @else {{'Inactive'}} @endif - {{$use->assign_group }}{{$use->primary_dpt }}{{ $group->name }}{{ $department->name }} {{ UTC::usertimezone($use->created_at) }}{{$use->Lastlogin_at}} {!! Form::open(['route'=>['agents.destroy', $use->id],'method'=>'DELETE']) !!} {!! Lang::get('lang.edit') !!} - {!! Form::button(' ' . Lang::get('lang.delete') , - ['type' => 'submit', - 'class'=> 'btn btn-warning btn-xs btn-flat', - 'onclick'=>'return confirm("Are you sure?")']) - !!} + {{-- {!! Form::button(' ' . Lang::get('lang.delete') ,['type' => 'submit', 'class'=> 'btn btn-warning btn-xs btn-flat','onclick'=>'return confirm("Are you sure?")']) !!} --}} {!! Form::close() !!}
    - + -@section('FooterInclude') -@stop @stop \ No newline at end of file diff --git a/resources/views/themes/default1/admin/helpdesk/agent/departments/create.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/departments/create.blade.php index 92f592baa..8e1ef7f54 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/departments/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/departments/create.blade.php @@ -76,7 +76,7 @@ class="active" {!! Form::label('sla',Lang::get('lang.SLA_plan')) !!} {!! $errors->first('sla', ':message') !!} - {!!Form::select('sla', ['SLA Plans'=>$slas->lists('grace_period','grace_period')],null,['class' => 'form-control select']) !!} + {!!Form::select('sla', ['SLA Plans'=>$slas->lists('grace_period','id')],null,['class' => 'form-control select']) !!} @@ -84,7 +84,7 @@ class="active" {!! Form::label('manager',Lang::get('lang.manager')) !!} {!! $errors->first('manager', ':message') !!} - {!!Form::select('manager',[''=>'Select a Manager','Managers'=>$user->lists('user_name','user_name')],null,['class' => 'form-control select']) !!} + {!!Form::select('manager',[''=>'Select a Manager','Managers'=>$user->lists('user_name','id')],null,['class' => 'form-control select']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/agent/departments/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/departments/edit.blade.php index 53c263356..e5cd710a7 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/departments/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/departments/edit.blade.php @@ -68,14 +68,13 @@ class="active" -
    {!! Form::label('sla',Lang::get('lang.SLA_plan')) !!} {!! $errors->first('sla', ':message') !!} - {!!Form::select('sla', ['SLA Plans'=>$slas->lists('grace_period','grace_period')],null,['class' => 'form-control select']) !!} + {!!Form::select('sla', ['SLA Plans'=>$slas->lists('grace_period','id')],null,['class' => 'form-control select']) !!}
    @@ -83,7 +82,7 @@ class="active" {!! Form::label('manager',Lang::get('lang.manager')) !!} {!! $errors->first('manager', ':message') !!} - {!!Form::select('manager',[''=>'Select a Manager','Managers'=>$user->lists('user_name','user_name')],null,['class' => 'form-control select']) !!} + {!!Form::select('manager',[null=>'Select a Manager','Managers'=>$user->lists('user_name','id')],null,['class' => 'form-control select']) !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/agent/departments/index.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/departments/index.blade.php index 0a741cf88..f7f4a0670 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/departments/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/departments/index.blade.php @@ -34,7 +34,7 @@ class="active"

    {!! Lang::get('lang.departments') !!}

    {{Lang::get('lang.create_department')}}
    -
    +
    @@ -44,7 +44,7 @@ class="active" {!! Lang::get('lang.success') !!} - {{Session::get('success')}} + {!! Session::get('success') !!}
    @endif @@ -53,37 +53,78 @@ class="active" {!! Lang::get('lang.fails') !!}! - {{Session::get('fails')}} + {!! Session::get('fails') !!}
    @endif - +
    + + +first(); +$default_department = $default_department->department; +?> + @foreach($departments as $department) - + + + manager == 0) { + $manager =""; + } else { + $manager = App\User::whereId($department->manager)->first(); + $manager = $manager->user_name; + } + + if($department->sla == null){ + $sla = ""; + } else { + $sla = App\Model\helpdesk\Manage\sla_plan::whereId($department->sla)->first(); + $sla = $sla->grace_period; + } + + ?> + + + diff --git a/resources/views/themes/default1/admin/helpdesk/agent/groups/index.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/groups/index.blade.php index cf375234d..87862c0e8 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/groups/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/groups/index.blade.php @@ -35,7 +35,7 @@ class="active"

    {!! Lang::get('lang.groups') !!}

    {{Lang::get('lang.create_group')}}
    -
    +
    @@ -44,7 +44,7 @@ class="active" Success! - {{Session::get('success')}} + {!! Session::get('success') !!}
    @endif @@ -53,11 +53,11 @@ class="active" Fail! - {{Session::get('fails')}} + {!! Session::get('fails') !!}
    @endif -
    {{Lang::get('lang.name')}} {{Lang::get('lang.type')}}{{Lang::get('lang.sla_plan')}} {{Lang::get('lang.department_manager')}} {{Lang::get('lang.action')}}
    {{$department -> name }} {{$department -> name }} + @if($default_department == $department->id) + ( Default ) + + @else + + @endif + @if($department->type=='1') {{'Public'}} @else {{'Private'}} @endif - {{$department->manager}}{{ $sla }}{{ $manager }} {!! Form::open(['route'=>['departments.destroy', $department->id],'method'=>'DELETE']) !!} Edit - + {{-- @if($default_department == $department->id) --}} + {{-- @else --}} + {!! Form::button(' Delete', ['type' => 'submit', - 'class'=> 'btn btn-warning btn-xs btn-flat', + 'class'=> 'btn btn-warning btn-xs btn-flat '.$disable, 'onclick'=>'return confirm("Are you sure?")']) !!} + {{-- @endif --}} + {!! Form::close() !!}
    +
    diff --git a/resources/views/themes/default1/admin/helpdesk/agent/teams/index.blade.php b/resources/views/themes/default1/admin/helpdesk/agent/teams/index.blade.php index 7c87496e1..995a8ec5c 100644 --- a/resources/views/themes/default1/admin/helpdesk/agent/teams/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/agent/teams/index.blade.php @@ -34,7 +34,7 @@ class="active"

    {{Lang::get('lang.teams')}}

    {{Lang::get('lang.create_team')}}
    -
    +
    @@ -56,7 +56,7 @@ class="active"
    @endif -
    {{Lang::get('lang.group_name')}}
    +
    @@ -74,9 +74,16 @@ class="active" {{'Inactive'}} @endif - +team_lead == 0) { + $team_lead = ""; +} else { + $users = App\User::whereId($team->team_lead)->first(); + $team_lead = $users->first_name . " " . $users->last_name; +} +?> - + @endif - - + primary_dpt){ + $dept = App\Model\helpdesk\Agent\Department::where('id','=',$user->primary_dpt)->first(); + } + if($user->assign_group){ + $grp = App\Model\helpdesk\Agent\Groups::where('id','=',$user->assign_group)->first(); + } + ?> + + diff --git a/resources/views/themes/default1/agent/layout/agent.blade.php b/resources/views/themes/default1/agent/layout/agent.blade.php index 3cdb07db4..f7a2e0ce8 100644 --- a/resources/views/themes/default1/agent/layout/agent.blade.php +++ b/resources/views/themes/default1/agent/layout/agent.blade.php @@ -228,7 +228,7 @@ if (Auth::user()->role == 'admin') { ?> assign_group; -$group = App\Model\helpdesk\Agent\Groups::where('name', '=', $agent_group)->where('group_status', '=', '1')->first(); +$group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->where('group_status', '=', '1')->first(); // dd($group); ?>
    @@ -288,6 +288,7 @@ $group = App\Model\helpdesk\Agent\Groups::where('name', '=', $agent_group)->wher
    + diff --git a/resources/views/themes/default1/agent/layout/sidebar.blade.php b/resources/views/themes/default1/agent/layout/sidebar.blade.php index de4bb8e40..d0a2905cc 100644 --- a/resources/views/themes/default1/agent/layout/sidebar.blade.php +++ b/resources/views/themes/default1/agent/layout/sidebar.blade.php @@ -39,24 +39,14 @@
  • {{Lang::get('lang.allpages')}}
  • -
  • - - {{Lang::get('lang.widgets')}} - - - -
  • -
  • + +
  • {{Lang::get('lang.comments')}}
  • -
  • +
  • {{Lang::get('lang.settings')}} diff --git a/resources/views/themes/default1/client/kb/article-list/show.blade.php b/resources/views/themes/default1/client/kb/article-list/show.blade.php index c28a3af1d..61f4b874f 100644 --- a/resources/views/themes/default1/client/kb/article-list/show.blade.php +++ b/resources/views/themes/default1/client/kb/article-list/show.blade.php @@ -2,14 +2,12 @@ @section('breadcrumb') id)->get(); /* from whole attribute pick the article_id */ $category_id = $all->lists('category_id'); ?>
    -
    first(); -$footer2 = App\Model\helpdesk\Theme\Footer2::whereId('1')->first(); -$footer3 = App\Model\helpdesk\Theme\Footer3::whereId('1')->first(); -$footer4 = App\Model\helpdesk\Theme\Footer4::whereId('1')->first(); +$footer1 = App\Model\helpdesk\Theme\Widgets::where('name','=','footer1')->first(); +$footer2 = App\Model\helpdesk\Theme\Widgets::where('name','=','footer2')->first(); +$footer3 = App\Model\helpdesk\Theme\Widgets::where('name','=','footer3')->first(); +$footer4 = App\Model\helpdesk\Theme\Widgets::where('name','=','footer4')->first(); ?>
  • {{Lang::get('lang.name')}} {{Lang::get('lang.status')}}{{count($assign_team_agent->where('team_id',$team->id))}}{{$team->team_lead}}{{ $team_lead }} {!! Form::open(['route'=>['teams.destroy', $team->id],'method'=>'DELETE']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/emails/banlist/create.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/banlist/create.blade.php index 8e6e122ef..5be9fef8c 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/banlist/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/banlist/create.blade.php @@ -62,14 +62,14 @@ class="active"
    -
    - {!! Form::label('ban_status',Lang::get('lang.ban_status')) !!} +
    + {!! Form::label('ban',Lang::get('lang.ban_status')) !!}
    - {!! Form::radio('ban_status',1) !!}{{Lang::get('lang.active')}} + {!! Form::radio('ban',1) !!}{{Lang::get('lang.active')}}
    - {!! Form::radio('ban_status',0) !!}{{Lang::get('lang.disabled')}} + {!! Form::radio('ban',0) !!}{{Lang::get('lang.disabled')}}
    diff --git a/resources/views/themes/default1/admin/helpdesk/emails/banlist/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/banlist/edit.blade.php index 81b52d667..50772c1a2 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/banlist/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/banlist/edit.blade.php @@ -42,8 +42,8 @@ class="active"
    -
    - {!! Form::label('ban_status',Lang::get('lang.ban_status')) !!} +
    + {!! Form::label('ban',Lang::get('lang.ban_status')) !!}
    {!! Form::radio('ban',1) !!}{{Lang::get('lang.active')}} diff --git a/resources/views/themes/default1/admin/helpdesk/emails/banlist/index.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/banlist/index.blade.php index cfa8e062a..dec00a3a9 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/banlist/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/banlist/index.blade.php @@ -34,7 +34,7 @@ class="active"

    {{Lang::get('lang.banlists')}}

    {{Lang::get('lang.ban_email')}}
    -
    +
    @@ -56,9 +56,7 @@ class="active" {{Session::get('fails')}}
    @endif - - - +
    @@ -74,15 +72,7 @@ class="active" @endforeach diff --git a/resources/views/themes/default1/admin/helpdesk/emails/emails/create.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/emails/create.blade.php index 54c960712..c7b244471 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/emails/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/emails/create.blade.php @@ -84,20 +84,11 @@ class="active" {!! Form::label('help_topic',Lang::get('lang.help_topic')) !!} {!! $errors->first('help_topic', ':message') !!} - {!!Form::select('help_topic', [''=>'Select a Helptopic','Help Topics'=>$helps->lists('topic','topic')],null,['class' => 'form-control select']) !!} + {!!Form::select('help_topic', [''=>'Select a Helptopic','Help Topics'=>$helps->lists('topic','id')],null,['class' => 'form-control select']) !!} - - {{--
    --}} - - {{-- {!! Form::label('',Lang::get('lang.auto_response')) !!} --}} - {{--
    --}} - {{-- {!! Form::checkbox('auto_response',1,null,['class' => 'checkbox']) !!} --}} - {{--
    --}} - {{--
    --}} -
    @@ -112,14 +103,6 @@ class="active"
    - -
    - - {!! Form::label('user_name',Lang::get('lang.email_address')) !!} - {!! $errors->first('user_name', ':message') !!} - {!! Form::text('user_name',null,['class' => 'form-control']) !!} - -
    @@ -184,11 +167,7 @@ class="active" {!! Form::label('mailbox_protocol',Lang::get('lang.mail_box_protocol')) !!} {!! $errors->first('mailbox_protocol', ':message') !!} - + {!!Form::select('mailbox_protocol',['Mailbox Protocols'=>$mailbox_protocols->lists('name','id')],null,['class' => 'form-control select']) !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/emails/emails/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/emails/edit.blade.php index f82618bd4..b2d0650a6 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/emails/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/emails/edit.blade.php @@ -84,7 +84,7 @@ class="active" {!! Form::label('help_topic',Lang::get('lang.help_topic')) !!} {!! $errors->first('help_topic', ':message') !!} - {!!Form::select('help_topic', [''=>'Select a Helptopic','Help Topics'=>$helps->lists('topic','topic')],null,['class' => 'form-control select']) !!} + {!!Form::select('help_topic', [''=>'Select a Helptopic','Help Topics'=>$helps->lists('topic','id')],null,['class' => 'form-control select']) !!}
    @@ -110,15 +110,6 @@ class="active"
    - -
    - - {!! Form::label('user_name',Lang::get('lang.email_address')) !!} - {!! $errors->first('user_name', ':message') !!} - {!! Form::text('user_name',null,['class' => 'form-control']) !!} - -
    -
    @@ -181,11 +172,7 @@ class="active" {!! Form::label('mailbox_protocol',Lang::get('lang.mail_box_protocol')) !!} {!! $errors->first('mailbox_protocol', ':message') !!} - + {!!Form::select('mailbox_protocol',['Mailbox Protocols'=>$mailbox_protocols->lists('name','id')],null,['class' => 'form-control select']) !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/emails/emails/index.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/emails/index.blade.php index 2bc2dbf09..513aee440 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/emails/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/emails/index.blade.php @@ -34,7 +34,7 @@ class="active"

    {!! Lang::get('lang.incoming_emails') !!}

    {{Lang::get('lang.create_email')}}
    -
    +
    @@ -56,7 +56,7 @@ class="active"
    @endif -
    {{Lang::get('lang.email_address')}} {{Lang::get('lang.last_updated')}} {!! UTC::usertimezone($ban->updated_at) !!} - {!! Form::open(['route'=>['banlist.destroy', $ban->id],'method'=>'DELETE']) !!} Edit - - {!! Form::button(' Delete', - ['type' => 'submit', - 'class'=> 'btn btn-warning btn-xs btn-flat', - 'onclick'=>'return confirm("Are you sure?")']) - !!} - {!! Form::close() !!}
    +
    @@ -70,8 +70,14 @@ class="active" priority)->first(); ?> - department)->first(); ?> - + @if($email->department !== null) + department)->first(); + $dept = $department->name; ?> + @elseif($email->department == null) + + @endif + + - {!!Form::select('purge_log', ['5 months','10 months','15 months'],null,['class'=>'form-control']) !!} - - - --}} - - - - {{--
    -
    - - {!! Form::label('name_format',Lang::get('lang.nameformat')) !!} - {!!Form::select('name_format', ['First Last','Last First'],null,['class'=>'form-control']) !!} - -
    -
    --}} - - - - {{--
    --}} - {{--
    --}} - - {{-- {!! Form::label('time_format',Lang::get('lang.timeformat')) !!} --}} - {{-- {!! $errors->first('time_format', ':message') !!} --}} - {{-- {!! Form::select('time_format',[''=>'Select a Time Format','Time Format'=>$time->lists('format','format')],null,['class' => 'form-control']) !!} --}} - - {{--
    --}} - {{--
    --}} - - - - {{--
    --}} - {{--
    --}} - - {{-- {!! Form::label('date_format',Lang::get('lang.dateformat')) !!} --}} - {{-- {!! $errors->first('date_format', ':message') !!} --}} - {{-- {!! Form::select('date_format',[''=>'Select a Date Format','Date Formats'=>$date->lists('format','format')],null,['class' => 'form-control']) !!} --}} - - {{--
    --}} - {{--
    --}} - +
    @@ -194,35 +129,16 @@ class="active" {!! Form::label('date_time_format',Lang::get('lang.date_time')) !!} {!! $errors->first('date_time_format', ':message') !!} - {!! Form::select('date_time_format',[''=>'Select a date Time Format','Date Time Formats'=>$date_time->lists('format','format')],null,['class' => 'form-control']) !!} + {!! Form::select('date_time_format',[''=>'Select a date Time Format','Date Time Formats'=>$date_time->lists('format','id')],null,['class' => 'form-control']) !!}
    - - - {{--
    --}} - {{--
    --}} - - {{-- {!! Form::label('day_date_time',Lang::get('lang.day_date_time')) !!} --}} - {{-- {!! $errors->first('day_date_time', ':message') !!} --}} - {{-- {!! Form::text('day_date_time',$systems->day_date_time,['class' => 'form-control']) !!} --}} - - {{--
    --}} - {{--
    --}}
    - {{--
    --}} - {{--
    --}} - - {{-- {!! Form::label('content',Lang::get('lang.content')) !!} --}} - {{-- {!! Form::textarea('content',null,['id'=>'content','class' => 'form-control','size' => '30x5']) !!} --}} - - {{--
    --}} - {{--
    --}}
    diff --git a/resources/views/themes/default1/admin/helpdesk/theme/social.blade.php b/resources/views/themes/default1/admin/helpdesk/theme/social.blade.php new file mode 100644 index 000000000..0bd121f26 --- /dev/null +++ b/resources/views/themes/default1/admin/helpdesk/theme/social.blade.php @@ -0,0 +1,49 @@ +@extends('themes.default1.admin.layout.admin') + +@section('Themes') +class="active" +@stop + +@section('theme-bar') +active +@stop + +@section('footer') +class="active" +@stop + +@section('content') + +
    +
    +

    {!! Lang::get('lang.widgets') !!}

    +
    + + @if(Session::has('success')) +
    + + Success! + + {{Session::get('success')}} +
    + @endif + + @if(Session::has('fails')) +
    + + Fail! + + {{Session::get('fails')}} +
    + @endif + +
    + +@stop diff --git a/resources/views/themes/default1/admin/helpdesk/theme/widgets.blade.php b/resources/views/themes/default1/admin/helpdesk/theme/widgets.blade.php new file mode 100644 index 000000000..1fd8e1b8c --- /dev/null +++ b/resources/views/themes/default1/admin/helpdesk/theme/widgets.blade.php @@ -0,0 +1,50 @@ +@extends('themes.default1.admin.layout.admin') + +@section('Themes') +class="active" +@stop + +@section('theme-bar') +active +@stop + +@section('footer') +class="active" +@stop + +@section('content') + +
    +
    +

    {!! Lang::get('lang.widgets') !!}

    +
    + + @if(Session::has('success')) +
    + + Success! + + {{Session::get('success')}} +
    + @endif + + @if(Session::has('fails')) +
    + + Fail! + + {{Session::get('fails')}} +
    + @endif + +
    + +@stop diff --git a/resources/views/themes/default1/agent/helpdesk/dashboard/dashboard.blade.php b/resources/views/themes/default1/agent/helpdesk/dashboard/dashboard.blade.php index 7d0049356..517f02173 100644 --- a/resources/views/themes/default1/agent/helpdesk/dashboard/dashboard.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/dashboard/dashboard.blade.php @@ -13,9 +13,10 @@ class="active" @stop @section('content') - -
    + + +

    {!! Lang::get('lang.line_chart') !!}

    @@ -24,10 +25,17 @@ class="active"
    -
    -
    - + @if(Session::has('content')) +
    +
    +
    + @else +
    +
    + +
    + @endif

    @@ -37,9 +45,9 @@ class="active"
    -
    {{Lang::get('lang.email')}} {{Lang::get('lang.priority')}} {{$email -> email_address }} {{ ucfirst($priority->priority_desc) }}{{ $department->name }}{{ $dept }} {{ UTC::usertimezone($email->created_at) }} {{ UTC::usertimezone($email->updated_at) }} diff --git a/resources/views/themes/default1/admin/helpdesk/emails/template/index.blade.php b/resources/views/themes/default1/admin/helpdesk/emails/template/index.blade.php index 55e01e789..6a9da8eea 100644 --- a/resources/views/themes/default1/admin/helpdesk/emails/template/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/emails/template/index.blade.php @@ -56,7 +56,7 @@ class="active" @endif - +
    diff --git a/resources/views/themes/default1/admin/helpdesk/manage/form/index.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/form/index.blade.php index 507f67ae4..672693a9d 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/form/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/form/index.blade.php @@ -57,7 +57,7 @@ class="active" @foreach($forms as $form) diff --git a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/create.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/create.blade.php index f6990fbf4..cea2e993b 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/create.blade.php @@ -94,7 +94,7 @@ class="active" {!! Form::label('custom_form',Lang::get('lang.custom')) !!} {!! $errors->first('custom_form', ':message') !!} - {!!Form::select('custom_form', [''=>'Select a Form','Custom Forms'=>$forms->lists('formname','name')],1,['class' => 'form-control']) !!} + {!!Form::select('custom_form', [''=>'Select a Form','Custom Forms'=>$forms->lists('formname','id')],1,['class' => 'form-control']) !!} @@ -128,7 +128,7 @@ class="active" {!! Form::label('sla_plan',Lang::get('lang.SLA_plan')) !!} {!! $errors->first('sla_plan', ':message') !!} - {!!Form::select('sla_plan', [''=>'Select a SLA Plan','SLA Plans'=>$slas->lists('name','name')],1,['class' => 'form-control']) !!} + {!!Form::select('sla_plan', [''=>'Select a SLA Plan','SLA Plans'=>$slas->lists('name','id')],1,['class' => 'form-control']) !!} @@ -139,7 +139,7 @@ class="active" {!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!} {!! $errors->first('auto_assign', ':message') !!} - {!!Form::select('auto_assign', [''=>'Select an Agent','Agents'=>$agents->lists('user_name','user_name')],null,['class' => 'form-control']) !!} + {!!Form::select('auto_assign', [''=>'Select an Agent','Agents'=>$agents->lists('user_name','id')],null,['class' => 'form-control']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/edit.blade.php index e1f4ada4b..c75c09876 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/edit.blade.php @@ -127,7 +127,7 @@ class="active" {!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!} {!! $errors->first('auto_assign', ':message') !!} - {!!Form::select('auto_assign', [''=>'Select an Agent','Agents'=>$agents->lists('user_name','user_name')],null,['class' => 'form-control']) !!} + {!!Form::select('auto_assign', [''=>'Select an Agent','Agents'=>$agents->lists('user_name','id')],null,['class' => 'form-control']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/index.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/index.blade.php index e7f8e546c..f03a10aa7 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/helptopic/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/helptopic/index.blade.php @@ -32,7 +32,7 @@ class="active"

    {{Lang::get('lang.help_topic')}}

    {{Lang::get('lang.create_help_topic')}}
    -
    +
    @@ -41,7 +41,7 @@ class="active" Success! - {{Session::get('success')}} + {!! Session::get('success') !!}
    @endif @@ -50,11 +50,11 @@ class="active" Fail! - {{Session::get('fails')}} + {!! Session::get('fails') !!}
    @endif -
    {{Lang::get('lang.name')}} {{Lang::get('lang.status')}}
    +
    @@ -65,12 +65,31 @@ class="active" + + first(); + $default_helptopic = $default_helptopic->help_topic; + + ?> + @foreach($topics as $topic) - + -department)->first(); ?> - + @if($topic->department != null) + department)->first(); + $dept = $dept->name; ?> + @elseif($topic->department == null) + + @endif + @@ -105,12 +129,10 @@ class="active" {!! Form::button(' Delete', ['type' => 'submit', - 'class'=> 'btn btn-warning btn-xs btn-flat', + 'class'=> 'btn btn-warning btn-xs btn-flat '.$disable, 'onclick'=>'return confirm("Are you sure?")']) !!} - - {!! Form::close() !!} @endforeach diff --git a/resources/views/themes/default1/admin/helpdesk/manage/sla/create.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/sla/create.blade.php index eae09c1aa..bf56ba563 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/sla/create.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/sla/create.blade.php @@ -62,7 +62,7 @@ class="active" {!! Form::label('grace_period',Lang::get('lang.grace_period')) !!} {!! $errors->first('grace_period', ':message') !!} - {!! Form::select('grace_period',['10'=>'10 Hours','15'=>'15 Hours','20'=>'20 hours','24'=>'One Day'],null,['class' => 'form-control']) !!} + {!! Form::select('grace_period',['6 Hours'=>'6 Hours', '12 Hours'=>'12 Hours', '18 Hours'=>'18 Hours', '24 Hours'=>'24 Hours', '36 Hours'=>'36 Hours', '48 Hours'=>'48 Hours'],null,['class' => 'form-control']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/manage/sla/edit.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/sla/edit.blade.php index 5318ed6ed..9554cb724 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/sla/edit.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/sla/edit.blade.php @@ -62,7 +62,7 @@ class="active" {!! Form::label('grace_period',Lang::get('lang.grace_period')) !!} {!! $errors->first('grace_period', ':message') !!} - {!! Form::select('grace_period',['10'=>'10 Hours','15'=>'15 Hours','20'=>'20 hours','24'=>'One Day'],null,['class' => 'form-control']) !!} + {!! Form::select('grace_period',['6 Hours'=>'6 Hours', '12 Hours'=>'12 Hours', '18 Hours'=>'18 Hours', '24 Hours'=>'24 Hours', '36 Hours'=>'36 Hours', '48 Hours'=>'48 Hours'],null,['class' => 'form-control']) !!} diff --git a/resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php b/resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php index 3e8c8e322..92ba4206e 100644 --- a/resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/manage/sla/index.blade.php @@ -34,7 +34,7 @@ class="active"

    {{Lang::get('lang.SLA_plan')}}

    {{Lang::get('lang.create_SLA')}}
    -
    +
    @@ -43,7 +43,7 @@ class="active" Success! - {{Session::get('success')}} + {!! Session::get('success') !!}
    @endif @@ -52,11 +52,11 @@ class="active" Fail! - {{Session::get('fails')}} + {!! Session::get('fails') !!}
    @endif -
    {{Lang::get('lang.topic')}}{{Lang::get('lang.last_updated')}} {{Lang::get('lang.action')}}
    {!! $topic->topic !!}{!! $topic->topic !!} + @if($topic->id == $default_helptopic) + ( Default ) + + @else + + @endif + @@ -94,8 +113,13 @@ class="active" priority)->first(); ?> {!! $priority->priority_desc !!} {!! $dept->name !!} {!! $dept !!} {!! UTC::usertimezone($topic->updated_at) !!}
    +
    @@ -66,12 +66,28 @@ class="active" + +first(); +$default_sla = $default_sla->sla; +?> + @foreach($slas as $sla) - - + @endforeach - - - -
    {{Lang::get('lang.name')}}{{Lang::get('lang.last_updated')}} {{Lang::get('lang.action')}}
    {!! $sla->name !!}{!! $sla->name !!} + @if($sla->id == $default_sla) + ( Default ) + + @else + + @endif + @if($sla->status=='1') @@ -93,19 +109,15 @@ class="active" {!! Form::button(' Delete', ['type' => 'submit', - 'class'=> 'btn btn-warning btn-xs btn-flat', + 'class'=> 'btn btn-warning btn-xs btn-flat '.$disable, 'onclick'=>'return confirm("Are you sure?")']) !!} {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/admin/helpdesk/setting.blade.php b/resources/views/themes/default1/admin/helpdesk/setting.blade.php index dbe8b1a99..2e5c7a4b5 100644 --- a/resources/views/themes/default1/admin/helpdesk/setting.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/setting.blade.php @@ -328,7 +328,7 @@
    -

    {!! Lang::get('lang.themes') !!}

    +

    {!! Lang::get('lang.widgets') !!}

    @@ -338,66 +338,36 @@
    -
    {!! Lang::get('lang.footer') !!}
    +
    {!! Lang::get('lang.widgets') !!}
    - + - + +
    -
    {!! Lang::get('lang.footer2') !!}
    +
    {!! Lang::get('lang.widgets') !!}
    - + - -
    -
    - -
    {!! Lang::get('lang.footer3') !!}
    -
    -
    - - -
    -
    - -
    {!! Lang::get('lang.footer4') !!}
    -
    -
    - -
    - -
    diff --git a/resources/views/themes/default1/admin/helpdesk/settings/system.blade.php b/resources/views/themes/default1/admin/helpdesk/settings/system.blade.php index beef0d395..698405d2f 100644 --- a/resources/views/themes/default1/admin/helpdesk/settings/system.blade.php +++ b/resources/views/themes/default1/admin/helpdesk/settings/system.blade.php @@ -117,76 +117,11 @@ class="active"
    {!! Form::label('time_zone',Lang::get('lang.timezone')) !!} {!! $errors->first('time_zone', ':message') !!} - {!!Form::select('time_zone',[''=>'Select a Time Zone','Time Zones'=>$timezones->lists('name','name')],null,['class'=>'form-control']) !!} + {!!Form::select('time_zone',[''=>'Select a Time Zone','Time Zones'=>$timezones->lists('name','id')],null,['class'=>'form-control']) !!}
    - - {{--
    --}} - {{--
    --}} - - {{-- {!! Form::label('page_size',Lang::get('lang.pagesize')) !!} --}} - {{-- {!!Form::select('page_size', ['5','10','15'],null,['class'=>'form-control']) !!} --}} - - {{--
    --}} - {{--
    --}} - - - - {{--
    -
    - - {!! Form::label('log_level',Lang::get('lang.loglevel')) !!} - {!!Form::select('log_level', [''=>'Select a Log','Log Levels'=>$log->lists('level','level')],null,['class'=>'form-control']) !!} -
    -
    --}} - - - - {{--
    -
    - - {!! Form::label('purge_log',Lang::get('lang.purglog')) !!}
    +
    - + @@ -54,7 +62,6 @@ $open = App\Model\helpdesk\Ticket\Tickets::where('dept_id','=',$department->id)- $resolve = App\Model\helpdesk\Ticket\Tickets::where('dept_id','=',$department->id)->where('status','=',2)->count(); $close = App\Model\helpdesk\Ticket\Tickets::where('dept_id','=',$department->id)->where('status','=',3)->count(); $delete = App\Model\helpdesk\Ticket\Tickets::where('dept_id','=',$department->id)->where('status','=',5)->count(); - ?> @@ -71,8 +78,8 @@ $delete = App\Model\helpdesk\Ticket\Tickets::where('dept_id','=',$department->id - - + + + + + + @stop \ No newline at end of file diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php index ff9fe0048..e8a578adb 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/answered.blade.php @@ -49,114 +49,34 @@ class="active" {{Session::get('fails')}} @endif -
    +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!}
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    -
    -
    +
    -
    {!! Lang::get('lang.department') !!} {!! Lang::get('lang.opened') !!} {!! Lang::get('lang.resolved') !!}
    - - - - - - - - - - - - - @foreach ($tickets as $ticket) - id)->get(); + {!! Datatable::table() + ->addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.answered.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!} - $title = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->first(); - $string = strip_tags($title->title); - if($title) - if($title == null){ - - } else { - ?> - seen_by == null) {?> style="color:green;" > - - id)->get(); - $collab = count($collaborators); - - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); - - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) - { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) - { - $assigned = "Unassigned"; - } - else - { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - - - - @endforeach - -
    - {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    - -
    - setPath(url('/ticket/answered'))->render();?>  -
    {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php index e2b6f2bb1..9bd3577bc 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/assigned.blade.php @@ -41,111 +41,33 @@ class="active" {{Session::get('fails')}}
    @endif -
    +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!}
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    -
    -
    +
    - - - - - - - - - - - - - - @foreach ($tickets as $ticket) - id)->first(); - $string = strip_tags($title->title); - if($title) - if($title == null){ - - } else { - ?> - seen_by == null) {?> style="color:green;" > - - id)->get(); - $collab = count($collaborators); - - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); - - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) - { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) - { - $assigned = "Unassigned"; - } - else - { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - - @endforeach - -
    - {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    - -
    - setPath(url('/ticket/assigned'))->render();?>  -
    + {!! Datatable::table() + ->addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.assigned.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!}
    {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/closed.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/closed.blade.php index 5f9c51419..77ded8c81 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/closed.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/closed.blade.php @@ -12,7 +12,6 @@ active class="active" @stop - @section('content') role == 'agent') { @@ -42,102 +41,35 @@ class="active" {{Session::get('fails')}}
    @endif -
    +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!}
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    - + {{-- --}}
    -
    +
    - - - - - - - - - - - - - - - @foreach ($tickets as $ticket ) - seen_by == null) {?> style="color:green;" > - - id)->first(); - $string = strip_tags($title->title); - // collaborators - $collaborators = App\Model\helpdesk\Ticket\Ticket_Collaborator::where('ticket_id','=',$ticket->id)->get(); - $collab = count($collaborators); - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); + {!! Datatable::table() + ->addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.closed.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!} - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) - { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) - { - $assigned = "Unassigned"; - } - else - { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - @endforeach - -
    {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    -
    - setPath(url('/ticket/closed'))->render();?>  -
    {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/inbox.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/inbox.blade.php index 80a60393f..9bced174d 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/inbox.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/inbox.blade.php @@ -41,108 +41,38 @@ class="active" {{Session::get('fails')}}
    @endif -
    +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!}
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    - + {{-- --}}
    -
    - - - - - - - - - - - - - - - - @foreach ($tickets as $ticket) - id)->first(); - $string = strip_tags($title->title); - if($title) - if($title == null){ - } else { - ?> - seen_by == null) {?> style="color:green;" > - - id)->get(); - $collab = count($collaborators); - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) { - $assigned = "Unassigned"; - } else { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - - @endforeach - -
    - {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    - -
    - setPath(url('/ticket/inbox'))->render();?>  -
    +
    + + {!! Datatable::table() + ->addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.inbox.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!} +
    {!! Form::close() !!}
    - @stop \ No newline at end of file diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/myticket.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/myticket.blade.php index 75664893c..57e06e0ef 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/myticket.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/myticket.blade.php @@ -41,101 +41,34 @@ class="active" {{Session::get('fails')}}
    @endif -
    +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!}
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    - + {{-- --}} -
    -
    +
    - - - - - - - - - - - - - - @foreach ($tickets as $ticket ) - seen_by == null) {?> style="color:green;" > - - id)->get(); - $collab = count($collaborators); - // title - $title = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->first(); - $string = strip_tags($title->title); - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); + {!! Datatable::table() + ->addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.myticket.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!} - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '=', 0)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) - { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) - { - $assigned = "Unassigned"; - } - else - { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - @endforeach - -
    {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    -
    - setPath(url('/ticket/myticket'))->render();?>  -
    {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/open.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/open.blade.php index 113dff714..50243120b 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/open.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/open.blade.php @@ -48,124 +48,32 @@ class="active" {{Session::get('fails')}}
    @endif -
    - +
    {!! Form::open(['route'=>'select_all','method'=>'post']) !!} - -
    -

    {!! $tickets->count().'-'.$tickets->total(); !!}

    - - -
    -
    +
    - - - - - - - - - - - - - - @foreach ($tickets as $ticket) - addColumn( + "", + Lang::get('lang.subject'), + Lang::get('lang.ticket_id'), + Lang::get('lang.priority'), + Lang::get('lang.from'), + Lang::get('lang.last_replier'), + Lang::get('lang.assigned_to'), + Lang::get('lang.last_activity')) + ->setUrl(route('get.open.ticket')) + ->setOrder(array(7=>'desc')) + ->setClass('table table-hover table-bordered table-striped') + ->render();!!} - // // title - $ticket_reply = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->where('is_internal', '=', 0)->max('id'); - - $ticket_reply1 = App\Model\helpdesk\Ticket\Ticket_Thread::where('id','=',$ticket_reply)->first(); - - $last_replier = App\User::where('id','=', $ticket_reply1->user_id)->first(); - - if($last_replier->role == 'agent') { - - } else { - - $title = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->first(); - $string = strip_tags($title->title); - - if($title == null){ - - } else { - ?> - seen_by == null) {?> style="color:green;" > - - id)->get(); - $collab = count($collaborators); - - // check atatchments - $attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id','=',$title->id)->first(); - $attach = count($attachments); - - if (strlen($string) > 40) { - $stringCut = substr($string, 0, 40); - $string = substr($stringCut, 0, strrpos($stringCut, ' ')).' ...'; - } - $TicketData = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->max('id'); - $TicketDatarow = App\Model\helpdesk\Ticket\Ticket_Thread::where('id', '=', $TicketData)->first(); - $LastResponse = App\User::where('id', '=', $TicketDatarow->user_id)->first(); - if($LastResponse->role == "user") { - $rep = "#F39C12"; - $username = $LastResponse->user_name; - } else { $rep = "#000"; $username = $LastResponse->first_name ." ". $LastResponse->last_name; - if($LastResponse->first_name==null || $LastResponse->last_name==null) { - $username = $LastResponse->user_name; - }} - $titles = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $ticket->id)->get(); - $count = count($titles); - foreach($titles as $title) - { - $title = $title; - } - $assigned_to = App\User::where('id','=',$ticket->assigned_to)->first(); - if($assigned_to == null) - { - $assigned = "Unassigned"; - } - else - { - $assigned = $assigned_to->first_name ." ". $assigned_to->last_name; - } - ?> - - - priority_id)->first();?> - - user_id)->first(); ?> - @if($from->role == "user") - - @else - - @endif - - - - - - @endforeach - -
    - {!! Lang::get('lang.subject') !!}{!! Lang::get('lang.ticket_id') !!}{!! Lang::get('lang.priority') !!}{!! Lang::get('lang.from') !!}{!! Lang::get('lang.last_replier') !!}{!! Lang::get('lang.assigned_to') !!}{!! Lang::get('lang.last_activity') !!}
    {{$string}} ({!! $count!!}) - @if($collab > 0) @endif - @if($attach > 0) @endif#{!! $ticket->ticket_number !!}{{$priority->priority_desc}}{!! $from->user_name !!}{!! $from->first_name." ".$from->last_name !!}{!! $username !!}{!! $assigned !!}{!! UTC::usertimezone($title->updated_at) !!}
    - -
    - setPath(url('/ticket/open'))->render();?>  -
    {!! Form::close() !!}
    diff --git a/resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php b/resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php index 9785caf50..41b7b70ea 100644 --- a/resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php +++ b/resources/views/themes/default1/agent/helpdesk/ticket/timeline.blade.php @@ -12,7 +12,7 @@ active $user = App\User::where('id', '=', $tickets->user_id)->first(); $assignedto = App\User::where('id', '=', $tickets->assigned_to)->first(); $agent_group = Auth::user()->assign_group; - $group = App\Model\helpdesk\Agent\Groups::where('name', '=', $agent_group)->where('group_status', '=', '1')->first(); + $group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->where('group_status', '=', '1')->first(); ?> @section('sidebar') @@ -53,7 +53,7 @@ active id)); - if ($group->can_edit_ticket == 1) {?> + if ($group->can_edit_ticket == 1) {?> @@ -62,7 +62,7 @@ active @if($tickets->assigned_to == Auth::user()->id) - + @endif {!! Lang::get('lang.generate_pdf') !!} @@ -724,7 +724,7 @@ $data = $ConvDate[0]; @@ -735,8 +735,8 @@ $data = $ConvDate[0]; @@ -747,20 +747,23 @@ $data = $ConvDate[0];
    +
    @@ -858,6 +861,7 @@ $data = $ConvDate[0];
    + can_assign_ticket == 1) {?>

    {!! Lang::get('lang.gender') !!}:

    {{ 'Female' }}

    {!! Lang::get('lang.department') !!}:

    {{ $user->primary_dpt }}

    {!! Lang::get('lang.group') !!}:

    {{ $user->assign_group }}

    {!! Lang::get('lang.department') !!}:

    {{ $dept->name }}

    {!! Lang::get('lang.group') !!}:

    {{ $grp->name }}

    {!! Lang::get('lang.company') !!}:

    {{ $user->company }}

    {!! Lang::get('lang.time_zone') !!}:

    {{ $user->agent_tzone }}

    {!! Lang::get('lang.role') !!}:

    {{ $user->role }}