diff --git a/app/Http/Controllers/Client/helpdesk/FormController.php b/app/Http/Controllers/Client/helpdesk/FormController.php index d2afa550b..7e1f94e94 100644 --- a/app/Http/Controllers/Client/helpdesk/FormController.php +++ b/app/Http/Controllers/Client/helpdesk/FormController.php @@ -35,16 +35,15 @@ use Redirect; * * @author Ladybird */ -class FormController extends Controller -{ +class FormController extends Controller { + /** * Create a new controller instance. * Constructor to check. * * @return void */ - public function __construct(TicketWorkflowController $TicketWorkflowController) - { + public function __construct(TicketWorkflowController $TicketWorkflowController) { $this->middleware('board'); // creating a TicketController instance $this->TicketWorkflowController = $TicketWorkflowController; @@ -57,15 +56,14 @@ class FormController extends Controller * * @return type */ - public function getForm(Help_topic $topic, CountryCode $code) - { + public function getForm(Help_topic $topic, CountryCode $code) { if (\Config::get('database.install') == '%0%') { return \Redirect::route('licence'); } $settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first(); $email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first(); if (!\Auth::check() && ($settings->status == 1 || $settings->status == '1')) { - return redirect('auth/login')->with(['login_require'=> 'Please login to your account for submitting a ticket', 'referer' => 'form']); + return redirect('auth/login')->with(['login_require' => 'Please login to your account for submitting a ticket', 'referer' => 'form']); } $location = GeoIP::getLocation(); $phonecode = $code->where('iso', '=', $location->iso_code)->first(); @@ -92,13 +90,13 @@ class FormController extends Controller * * @return type string */ - public function postForm($id, Help_topic $topic) - { + public function postForm($id, Help_topic $topic) { if ($id != 0) { $helptopic = $topic->where('id', '=', $id)->first(); $custom_form = $helptopic->custom_form; $values = Fields::where('forms_id', '=', $custom_form)->get(); if (!$values) { + } if ($values) { foreach ($values as $form_data) { @@ -106,29 +104,29 @@ class FormController extends Controller $form_fields = explode(',', $form_data->value); $var = ''; foreach ($form_fields as $form_field) { - $var .= ''; + $var .= ''; } - echo '
'; + echo '
'; } elseif ($form_data->type == 'radio') { $type2 = $form_data->value; $vals = explode(',', $type2); - echo '

'; + echo '

'; foreach ($vals as $val) { - echo ' '.$form_data->value.'       '; + echo ' ' . $form_data->value . '       '; } echo '
'; } elseif ($form_data->type == 'textarea') { $type3 = $form_data->value; - echo '

'; + echo '

'; } elseif ($form_data->type == 'checkbox') { $type4 = $form_data->value; $checks = explode(',', $type4); - echo '

'; + echo '

'; foreach ($checks as $check) { - echo '  '.$check; + echo '  ' . $check; } } else { - echo '
'; + echo '
'; } } echo '

'; @@ -144,104 +142,108 @@ class FormController extends Controller * @param type Request $request * @param type User $user */ - public function postedForm(User $user, ClientRequest $request, Ticket $ticket_settings, Ticket_source $ticket_source, Ticket_attachments $ta, CountryCode $code) - { - $form_extras = $request->except('Name', 'Phone', 'Email', 'Subject', 'Details', 'helptopic', '_wysihtml5_mode', '_token', 'mobile', 'Code', 'priority'); - $name = $request->input('Name'); - $phone = $request->input('Phone'); - if ($request->input('Email')) { + public function postedForm(User $user, ClientRequest $request, Ticket $ticket_settings, Ticket_source $ticket_source, Ticket_attachments $ta, CountryCode $code) { + try { + $form_extras = $request->except('Name', 'Phone', 'Email', 'Subject', 'Details', 'helptopic', '_wysihtml5_mode', '_token', 'mobile', 'Code', 'priority', 'attachment'); + $name = $request->input('Name'); + $phone = $request->input('Phone'); if ($request->input('Email')) { - $email = $request->input('Email'); + if ($request->input('Email')) { + $email = $request->input('Email'); + } else { + $email = null; + } } else { $email = null; } - } else { - $email = null; - } - $subject = $request->input('Subject'); - $details = $request->input('Details'); - $phonecode = $request->input('Code'); - if ($request->input('mobile')) { - $mobile_number = $request->input('mobile'); - } else { - $mobile_number = null; - } - $status = $ticket_settings->first()->status; - $helptopic = $request->input('helptopic'); - $helpTopicObj = Help_topic::where('id', '=', $helptopic); - if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { - $department = $helpTopicObj->value('department'); - } else { - $defaultHelpTopicID = Ticket::where('id', '=', '1')->first()->help_topic; - $department = Help_topic::where('id', '=', $defaultHelpTopicID)->value('department'); - } - $sla = $ticket_settings->first()->sla; - - // $priority = $ticket_settings->first()->priority; - $default_priority = Ticket_Priority::where('is_default', '=', 1)->first(); - $user_priority = CommonSettings::where('option_name', '=', 'user_priority')->first(); - if (!($request->input('priority'))) { - $priority = $default_priority->priority_id; - if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { - $priority = $helpTopicObj->value('priority'); - } - } else { - $priority = $request->input('priority'); - } - $source = $ticket_source->where('name', '=', 'web')->first()->id; - $attachments = $request->file('attachment'); - $collaborator = null; - $assignto = null; - if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { - $assignto = $helpTopicObj->value('auto_assign'); - } - $auto_response = 0; - $team_assign = null; - if ($phone != null || $mobile_number != null) { - $location = GeoIP::getLocation(); - $geoipcode = $code->where('iso', '=', $location->iso_code)->first(); - if ($phonecode == null) { - $data = [ - 'fails' => Lang::get('lang.country-code-required-error'), - 'phonecode' => $geoipcode->phonecode, - 'country_code_error' => 1, - ]; - - return Redirect::back()->with($data)->withInput($request->except('password')); + $subject = $request->input('Subject'); + $details = $request->input('Details'); + $phonecode = $request->input('Code'); + if ($request->input('mobile')) { + $mobile_number = $request->input('mobile'); } else { - $code = CountryCode::select('phonecode')->where('phonecode', '=', $phonecode)->get(); - if (!count($code)) { + $mobile_number = null; + } + $status = $ticket_settings->first()->status; + $helptopic = $request->input('helptopic'); + $helpTopicObj = Help_topic::where('id', '=', $helptopic); + if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { + $department = $helpTopicObj->value('department'); + } else { + $defaultHelpTopicID = Ticket::where('id', '=', '1')->first()->help_topic; + $department = Help_topic::where('id', '=', $defaultHelpTopicID)->value('department'); + } + $sla = $ticket_settings->first()->sla; + + // $priority = $ticket_settings->first()->priority; + $default_priority = Ticket_Priority::where('is_default', '=', 1)->first(); + $user_priority = CommonSettings::where('option_name', '=', 'user_priority')->first(); + if (!($request->input('priority'))) { + $priority = $default_priority->priority_id; + if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { + $priority = $helpTopicObj->value('priority'); + } + } else { + $priority = $request->input('priority'); + } + $source = $ticket_source->where('name', '=', 'web')->first()->id; + $attachments = $request->file('attachment'); + $collaborator = null; + $assignto = null; + if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) { + $assignto = $helpTopicObj->value('auto_assign'); + } + $auto_response = 0; + $team_assign = null; + if ($phone != null || $mobile_number != null) { + $location = GeoIP::getLocation(); + $geoipcode = $code->where('iso', '=', $location->iso_code)->first(); + if ($phonecode == null) { $data = [ - 'fails' => Lang::get('lang.incorrect-country-code-error'), - 'phonecode' => $geoipcode->phonecode, + 'fails' => Lang::get('lang.country-code-required-error'), + 'phonecode' => $geoipcode->phonecode, 'country_code_error' => 1, ]; return Redirect::back()->with($data)->withInput($request->except('password')); - } - } - } - $result = $this->TicketWorkflowController->workflow($email, $name, $subject, $details, $phone, $phonecode, $mobile_number, $helptopic, $sla, $priority, $source, $collaborator, $department, $assignto, $team_assign, $status, $form_extras, $auto_response); - // dd($result); - if ($result[1] == 1) { - $ticketId = Tickets::where('ticket_number', '=', $result[0])->first(); - $thread = Ticket_Thread::where('ticket_id', '=', $ticketId->id)->first(); - if ($attachments != null) { - foreach ($attachments as $attachment) { - if ($attachment != null) { - $name = $attachment->getClientOriginalName(); - $type = $attachment->getClientOriginalExtension(); - $size = $attachment->getSize(); - $data = file_get_contents($attachment->getRealPath()); - $attachPath = $attachment->getRealPath(); - $ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']); + } else { + $code = CountryCode::select('phonecode')->where('phonecode', '=', $phonecode)->get(); + if (!count($code)) { + $data = [ + 'fails' => Lang::get('lang.incorrect-country-code-error'), + 'phonecode' => $geoipcode->phonecode, + 'country_code_error' => 1, + ]; + + return Redirect::back()->with($data)->withInput($request->except('password')); } } } + \Event::fire(new \App\Events\ClientTicketFormPost($form_extras, $email, $source)); + $result = $this->TicketWorkflowController->workflow($email, $name, $subject, $details, $phone, $phonecode, $mobile_number, $helptopic, $sla, $priority, $source, $collaborator, $department, $assignto, $team_assign, $status, $form_extras, $auto_response); // dd($result); - return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is').' '.$result[0].'. '.Lang::get('lang.Please-save-this-for-future-reference')); - } else { - return Redirect::back()->withInput($request->except('password'))->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken')); + if ($result[1] == 1) { + $ticketId = Tickets::where('ticket_number', '=', $result[0])->first(); + $thread = Ticket_Thread::where('ticket_id', '=', $ticketId->id)->first(); + if ($attachments != null) { + foreach ($attachments as $attachment) { + if ($attachment != null) { + $name = $attachment->getClientOriginalName(); + $type = $attachment->getClientOriginalExtension(); + $size = $attachment->getSize(); + $data = file_get_contents($attachment->getRealPath()); + $attachPath = $attachment->getRealPath(); + $ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']); + } + } + } + // dd($result); + return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is') . ' ' . $result[0] . '. ' . Lang::get('lang.Please-save-this-for-future-reference')); + } else { + return Redirect::back()->withInput($request->except('password'))->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken')); + } + } catch (\Exception $ex) { + return redirect()->back()->with('fails', $ex->getMessage()); } // dd($result); } @@ -253,14 +255,13 @@ class FormController extends Controller * * @return type view */ - public function post_ticket_reply($id, Request $request) - { + public function post_ticket_reply($id, Request $request) { try { if ($comment != null) { $tickets = Tickets::where('id', '=', $id)->first(); $thread = Ticket_Thread::where('ticket_id', '=', $tickets->id)->first(); - $subject = $thread->title.'[#'.$tickets->ticket_number.']'; + $subject = $thread->title . '[#' . $tickets->ticket_number . ']'; $body = $request->input('comment'); $user_cred = User::where('id', '=', $tickets->user_id)->first(); @@ -294,8 +295,7 @@ class FormController extends Controller } } - public function getCustomForm(Request $request) - { + public function getCustomForm(Request $request) { $html = ''; $helptopic_id = $request->input('helptopic'); $helptopics = new Help_topic(); @@ -313,4 +313,5 @@ class FormController extends Controller return $html; } + } diff --git a/app/Http/Controllers/Common/SettingsController.php b/app/Http/Controllers/Common/SettingsController.php index c60896ba7..60fb23245 100644 --- a/app/Http/Controllers/Common/SettingsController.php +++ b/app/Http/Controllers/Common/SettingsController.php @@ -406,7 +406,7 @@ class SettingsController extends Controller $app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php'; chmod($app, 0644); $str = "\n\n\t\t\t'App\\Plugins\\$filename"."\\ServiceProvider',"; - $line_i_am_looking_for = 194; + $line_i_am_looking_for = 185; $lines = file($app, FILE_IGNORE_NEW_LINES); $lines[$line_i_am_looking_for] = $str; file_put_contents($app, implode("\n", $lines)); @@ -578,7 +578,7 @@ class SettingsController extends Controller if (!$plug) { $app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php'; $str = "\n'App\\Plugins\\$slug"."\\ServiceProvider',"; - $line_i_am_looking_for = 194; + $line_i_am_looking_for = 185; $lines = file($app, FILE_IGNORE_NEW_LINES); $lines[$line_i_am_looking_for] = $str; file_put_contents($app, implode("\n", $lines)); @@ -592,7 +592,7 @@ class SettingsController extends Controller $app = base_path().DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'app.php'; $str = "\n'App\\Plugins\\$slug"."\\ServiceProvider',"; - $line_i_am_looking_for = 194; + $line_i_am_looking_for = 185; $lines = file($app, FILE_IGNORE_NEW_LINES); $lines[$line_i_am_looking_for] = $str; file_put_contents($app, implode("\n", $lines));