Laravel version update

Laravel version update
This commit is contained in:
Manish Verma
2018-08-06 18:48:58 +05:30
parent d143048413
commit 126fbb0255
13678 changed files with 1031482 additions and 778530 deletions

View File

@@ -87,7 +87,7 @@ class AgentController extends Controller
// get all department
$departments = $department->get();
// list all the teams in a single variable
$teams = $team->lists('id', 'name')->toArray();
$teams = $team->pluck('id', 'name')->toArray();
$location = GeoIP::getLocation();
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
// returns to the page with all the variables and their datas
@@ -187,13 +187,13 @@ class AgentController extends Controller
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
$user = $user->whereId($id)->first();
$team = $team->where('status', '=', 1)->get();
$teams1 = $team->lists('name', 'id');
$teams1 = $team->pluck('name', 'id');
$timezones = $timezone->get();
$groups = $group->where('group_status', '=', 1)->get();
$departments = $department->get();
$table = $team_assign_agent->where('agent_id', $id)->first();
$teams = $team->lists('id', 'name')->toArray();
$assign = $team_assign_agent->where('agent_id', $id)->lists('team_id')->toArray();
$teams = $team->pluck('id', 'name')->toArray();
$assign = $team_assign_agent->where('agent_id', $id)->pluck('team_id')->toArray();
return view('themes.default1.admin.helpdesk.agent.agents.edit', compact('teams', 'assign', 'table', 'teams1', 'selectedTeams', 'user', 'timezones', 'groups', 'departments', 'team', 'exp', 'counted'))->with('phonecode', $phonecode->phonecode);
} catch (Exception $e) {

View File

@@ -84,7 +84,7 @@ class DepartmentController extends Controller
$emails = $email->select('email_name', 'id')->get();
$templates = $template->get();
$department = $department->get();
$groups = $group->lists('id', 'name');
$groups = $group->pluck('id', 'name');
return view('themes.default1.admin.helpdesk.agent.departments.create', compact('department', 'templates', 'slas', 'user', 'emails', 'groups'));
} catch (Exception $e) {
@@ -164,8 +164,8 @@ class DepartmentController extends Controller
$emails = $email->select('email_name', 'id')->get();
$templates = $template->get();
$departments = $department->whereId($id)->first();
//$groups = $group->lists('id', 'name');
$assign = $group_assign_department->where('department_id', $id)->lists('group_id');
//$groups = $group->pluck('id', 'name');
$assign = $group_assign_department->where('department_id', $id)->pluck('group_id');
return view('themes.default1.admin.helpdesk.agent.departments.edit', compact('assign', 'team', 'templates', 'departments', 'slas', 'user', 'emails', 'sys_department'));
} catch (Exception $e) {

View File

@@ -82,7 +82,7 @@ class EmailsController extends Controller
$mailbox_protocols = $mailbox_protocol->get();
$service = new \App\Model\MailJob\MailService();
$services = $service->lists('name', 'id')->toArray();
$services = $service->pluck('name', 'id')->toArray();
// return with all the table data
return view('themes.default1.admin.helpdesk.emails.emails.create', compact('mailbox_protocols', 'priority', 'departments', 'helps', 'services'));
@@ -351,7 +351,7 @@ class EmailsController extends Controller
$mailbox_protocols = $mailbox_protocol->get();
$service = new \App\Model\MailJob\MailService();
$services = $service->lists('name', 'id')->toArray();
$services = $service->pluck('name', 'id')->toArray();
// return if the execution is succeeded
return view('themes.default1.admin.helpdesk.emails.emails.edit', compact('mailbox_protocols', 'priority', 'departments', 'helps', 'emails', 'sys_email', 'services'))->with('count', $count);

View File

@@ -190,7 +190,7 @@ class FormController extends Controller
try {
$forms = new Forms();
$form = $forms->find($id);
$select_forms = $forms->where('id', '!=', $id)->lists('formname', 'id')->toArray();
$select_forms = $forms->where('id', '!=', $id)->pluck('formname', 'id')->toArray();
//dd($form);
if ($form) {
$fields = $form->fields();
@@ -209,7 +209,7 @@ class FormController extends Controller
try {
$forms = new Forms();
$form = $forms->find($id);
$select_forms = $forms->where('id', '!=', $id)->lists('formname', 'id')->toArray();
$select_forms = $forms->where('id', '!=', $id)->pluck('formname', 'id')->toArray();
//dd($form);
if ($form) {
$fields = $form->fields();
@@ -541,7 +541,7 @@ class FormController extends Controller
$session = self::getSession();
$script = self::jqueryScript($field_value = '', $field->id, $field->name, $field_type);
$form_hidden = Form::hidden('fieldid[]', $field->id, ['id' => 'hidden'.$session.$field->id]).Form::label($field->label, $field->label, ['class' => $required_class]);
$select = Form::$field_type($field->name, ['' => 'Select', 'Selects' => self::removeUnderscoreFromDB($field->values()->lists('field_value', 'field_value')->toArray())], null, ['class' => "form-control $session$field->id", 'id' => $session.$field->id, 'required' => $required]).'</br>';
$select = Form::$field_type($field->name, ['' => 'Select', 'Selects' => self::removeUnderscoreFromDB($field->values()->pluck('field_value', 'field_value')->toArray())], null, ['class' => "form-control $session$field->id", 'id' => $session.$field->id, 'required' => $required]).'</br>';
$html = $script.$form_hidden.$select;
$response_div = '<div id='.$session.$field->name.'></div>';
@@ -552,7 +552,7 @@ class FormController extends Controller
{
$radio = '';
$html = '';
$values = $field->values()->lists('field_value')->toArray();
$values = $field->values()->pluck('field_value')->toArray();
if (count($values) > 0) {
foreach ($values as $field_value) {
$script = self::jqueryScript($field_value, $field->id, $field->name, $field_type);
@@ -570,7 +570,7 @@ class FormController extends Controller
$session = self::getSession();
$checkbox = '';
$html = '';
$values = $field->values()->lists('field_value')->toArray();
$values = $field->values()->pluck('field_value')->toArray();
if (count($values) > 0) {
$i = 1;
foreach ($values as $field_value) {

View File

@@ -48,7 +48,7 @@ class GroupController extends Controller
{
try {
$groups = $group->get();
$departments = $department->lists('id');
$departments = $department->pluck('id');
return view('themes.default1.admin.helpdesk.agent.groups.index', compact('departments', 'group_assign_department', 'groups'));
} catch (Exception $e) {

View File

@@ -49,7 +49,7 @@ class TeamController extends Controller
try {
$teams = $team->get();
/* find out the Number of Members in the Team */
$id = $teams->lists('id');
$id = $teams->pluck('id');
$assign_team_agent = $assign_team_agent->get();
return view('themes.default1.admin.helpdesk.agent.teams.index', compact('assign_team_agent', 'teams'));
@@ -213,7 +213,7 @@ class TeamController extends Controller
$a_id = [];
$teams = $team->whereId($id)->first();
$agent_team = $assign_team_agent->where('team_id', $id)->get();
$agent_id = $agent_team->lists('agent_id', 'agent_id');
$agent_id = $agent_team->pluck('agent_id', 'agent_id');
foreach ($agent_id as $value) {
array_push($a_id, $value);
}

View File

@@ -145,7 +145,7 @@ class WorkflowController extends Controller
public function create(Emails $emails)
{
$email_data = '';
foreach ($emails->lists('email_address', 'id') as $key => $email) {
foreach ($emails->pluck('email_address', 'id') as $key => $email) {
$email_data["E-$key"] = $email;
}
$emails = $email_data;

View File

@@ -67,7 +67,7 @@ class FilterController extends Controller
}
}
})
->lists('ticket_id')
->pluck('ticket_id')
->toArray();
return $query;

View File

@@ -1763,7 +1763,7 @@ class TicketController extends Controller
public function autosearch($id)
{
$term = \Input::get('term');
$user = \App\User::where('email', 'LIKE', '%'.$term.'%')->lists('email');
$user = \App\User::where('email', 'LIKE', '%'.$term.'%')->pluck('email');
echo json_encode($user);
}
@@ -1776,7 +1776,7 @@ class TicketController extends Controller
*/
public function autosearch2(User $user)
{
$user = $user->lists('email');
$user = $user->pluck('email');
echo json_encode($user);
}

View File

@@ -257,7 +257,7 @@ class UserController extends Controller
$email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first();
$location = GeoIP::getLocation();
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
$org = Organization::lists('name', 'id')->toArray();
$org = Organization::pluck('name', 'id')->toArray();
return view('themes.default1.agent.helpdesk.user.create', compact('org', 'settings', 'email_mandatory'))->with('phonecode', $phonecode->phonecode);
} catch (Exception $e) {
@@ -647,9 +647,9 @@ class UserController extends Controller
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
$orgs = Organization::all();
// dd($org);
$organization_id = User_org::where('user_id', '=', $id)->lists('org_id')->first();
$organization_id = User_org::where('user_id', '=', $id)->pluck('org_id')->first();
// $org_name=Organization::where('id','=',$org_id)->lists('name')->first();
// $org_name=Organization::where('id','=',$org_id)->pluck('name')->first();
// dd($org_name);
return view('themes.default1.agent.helpdesk.user.edit', compact('users', 'orgs', '$settings', '$email_mandatory', 'organization_id'))->with('phonecode', $phonecode->phonecode);
@@ -833,7 +833,7 @@ class UserController extends Controller
$org_name = Input::get('org');
if ($org_name) {
$org = Organization::where('name', '=', $org_name)->lists('id')->first();
$org = Organization::where('name', '=', $org_name)->pluck('id')->first();
if ($org) {
$user_org = new User_org();
$user_org->org_id = $org;
@@ -854,7 +854,7 @@ class UserController extends Controller
$org_name = Input::get('org');
if ($org_name) {
$org = Organization::where('name', '=', $org_name)->lists('id')->first();
$org = Organization::where('name', '=', $org_name)->pluck('id')->first();
if ($org) {
$user_org = User_org::where('user_id', '=', $id)->first();
$user_org->org_id = $org;

View File

@@ -134,7 +134,7 @@ class ArticleController extends Controller
public function create(Category $category)
{
/* get the attributes of the category */
$category = $category->lists('id', 'name');
$category = $category->pluck('id', 'name');
/* get the create page */
try {
return view('themes.default1.agent.kb.article.create', compact('category'));
@@ -196,9 +196,9 @@ class ArticleController extends Controller
$aid = $article->where('id', $slug)->first();
$id = $aid->id;
/* define the selected fields */
$assign = $relation->where('article_id', $id)->lists('category_id');
$assign = $relation->where('article_id', $id)->pluck('category_id');
/* get the attributes of the category */
$category = $category->lists('id', 'name');
$category = $category->pluck('id', 'name');
/* get the selected article and display it at edit page */
/* Get the selected article with id */
$article = $article->whereId($id)->first();

View File

@@ -121,7 +121,7 @@ class CategoryController extends Controller
public function create(Category $category)
{
/* Get the all attributes in the category model */
$category = $category->lists('name', 'id')->toArray();
$category = $category->pluck('name', 'id')->toArray();
/* get the view page to create new category with all attributes
of category model */
try {
@@ -167,7 +167,7 @@ class CategoryController extends Controller
{
/* get the atributes of the category model whose id == $id */
$category = Category::whereId($id)->first();
$categories = Category::lists('name', 'id')->toArray();
$categories = Category::pluck('name', 'id')->toArray();
/* get the Edit page the selected category via id */
return view('themes.default1.agent.kb.category.edit', compact('category', 'categories'));
}

View File

@@ -627,7 +627,7 @@ class TicketController extends Controller
public function autosearch()
{
$term = \Input::get('term');
$user = \App\User::where('email', 'LIKE', '%'.$term.'%')->orWhere('first_name', 'LIKE', '%'.$term.'%')->orWhere('last_name', 'LIKE', '%'.$term.'%')->orWhere('user_name', 'LIKE', '%'.$term.'%')->lists('email');
$user = \App\User::where('email', 'LIKE', '%'.$term.'%')->orWhere('first_name', 'LIKE', '%'.$term.'%')->orWhere('last_name', 'LIKE', '%'.$term.'%')->orWhere('user_name', 'LIKE', '%'.$term.'%')->pluck('email');
return $user;
}

View File

@@ -142,7 +142,7 @@ class UserController extends Controller
$all = $relation->where('category_id', $id)->get();
// $all->setPath('');
/* from whole attribute pick the article_id */
$article_id = $all->lists('article_id');
$article_id = $all->pluck('article_id');
$categorys = $category->get();
/* direct to view with $article_id */
return view('themes.default1.client.kb.article-list.category', compact('all', 'id', 'categorys', 'article_id'));

View File

@@ -34,7 +34,7 @@ class ApiSettings extends Controller
$ticket_detail = '';
$settings = $this->api;
if ($settings->get()->count() > 0) {
$details = $this->api->lists('value', 'key')->toArray();
$details = $this->api->pluck('value', 'key')->toArray();
}
if (array_key_exists('ticket_detail', $details)) {
$ticket_detail = $details['ticket_detail'];

View File

@@ -206,7 +206,7 @@ class PhpMailController extends Controller
public function setServices($emailid, $protocol)
{
$service = new \App\Model\MailJob\FaveoMail();
$services = $service->where('email_id', $emailid)->lists('value', 'key')->toArray();
$services = $service->where('email_id', $emailid)->pluck('value', 'key')->toArray();
$controller = new \App\Http\Controllers\Admin\helpdesk\EmailsController();
$controller->setServiceConfig($protocol, $services);
}
@@ -279,7 +279,7 @@ class PhpMailController extends Controller
if ($active_queue) {
$short = $active_queue->short_name;
$fields = new \App\Model\MailJob\FaveoQueue();
$field = $fields->where('service_id', $active_queue->id)->lists('value', 'key')->toArray();
$field = $fields->where('service_id', $active_queue->id)->pluck('value', 'key')->toArray();
}
$this->setQueueConfig($short, $field);
}

View File

@@ -97,7 +97,7 @@ class TemplateController extends Controller
{
try {
$i = $this->template->orderBy('created_at', 'desc')->first()->id + 1;
$type = $this->type->lists('name', 'id')->toArray();
$type = $this->type->pluck('name', 'id')->toArray();
return view('themes.default1.common.template.create', compact('type'));
} catch (\Exception $ex) {
@@ -135,7 +135,7 @@ class TemplateController extends Controller
try {
$i = $this->template->orderBy('created_at', 'desc')->first()->id + 1;
$template = $this->template->where('id', $id)->first();
$type = $this->type->lists('name', 'id')->toArray();
$type = $this->type->pluck('name', 'id')->toArray();
return view('themes.default1.common.template.edit', compact('type', 'template'));
} catch (\Exception $ex) {

View File

@@ -57,7 +57,7 @@ class CheckUpdate
if ($not->count() > 0) {
$now = \Carbon\Carbon::now();
$yesterday = \Carbon\Carbon::yesterday();
$notifications = $notify->whereBetween('created_at', [$yesterday, $now])->lists('value', 'key');
$notifications = $notify->whereBetween('created_at', [$yesterday, $now])->pluck('value', 'key');
$todelete = $notify->where('created_at', '<', $yesterday)->get();
if ($todelete->count() > 0) {
foreach ($todelete as $delete) {
@@ -114,7 +114,7 @@ class CheckUpdate
if ($n) {
$now = \Carbon\Carbon::now();
$yesterday = \Carbon\Carbon::yesterday();
$notifications = $notify->where('key', 'new-version')->whereBetween('created_at', [$yesterday, $now])->lists('value', 'key');
$notifications = $notify->where('key', 'new-version')->whereBetween('created_at', [$yesterday, $now])->pluck('value', 'key');
if ($notifications->count() > 0) {
return false;
}

View File

@@ -3,6 +3,7 @@
namespace App\Http\ViewComposers;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Ticket\Tickets;
use App\User;
@@ -20,6 +21,7 @@ class AgentLayout
protected $users;
protected $tickets;
protected $department;
protected $emails;
/**
* Create a new profile composer.
@@ -28,13 +30,14 @@ class AgentLayout
*
* @return void
*/
public function __construct(Company $company, User $users, Tickets $tickets, Department $department)
public function __construct(Company $company, User $users, Tickets $tickets, Department $department, Emails $emails)
{
$this->company = $company;
$this->auth = Auth::user();
$this->users = $users;
$this->tickets = $tickets;
$this->department = $department;
$this->emails = $emails;
}
/**
@@ -54,10 +57,13 @@ class AgentLayout
'unassigned' => $this->unassigned(),
'followup_ticket' => $this->followupTicket(),
'deleted' => $this->deleted(),
'closed' => $this->closed(),
'tickets' => $this->inbox(),
'department' => $this->departments(),
'overdues' => $this->overdues(),
'due_today' => $this->getDueToday(),
'is_mail_conigured' => $this->getEmailConfig(),
'ticket_policy' => new \App\Policies\TicketPolicy(),
]);
}
@@ -194,4 +200,45 @@ class AgentLayout
->whereRaw('date(duedate) = ?', [date('Y-m-d')]);
}
}
/**
* @category function to fetch closed tickets count
*
* @param null
*
* @return builder
*/
public function closed()
{
$table = $this->tickets();
if (Auth::user()->role == 'agent') {
$id = Auth::user()->id;
$dept = DepartmentAssignAgents::where('agent_id', '=', $id)->pluck('department_id')->toArray();
$table = $table->whereIn('tickets.dept_id', $dept)->orWhere('assigned_to', '=', Auth::user()->id);
// $id = Auth::user()->primary_dpt;
// $table = $table->where('tickets.dept_id', '=', $id)->orWhere('assigned_to', '=', Auth::user()->id);
}
return $table->where('status', 3);
}
/**
* @category function to check configured mails
*
* @param null
*
* @var $emails
*
* @return bool true/false
*/
public function getEmailConfig()
{
$emails = $this->emails->where('sending_status', '=', 1)->where('fetching_status', '=', 1)->count();
if ($emails >= 1) {
return true;
}
return false;
}
}

View File

@@ -23,7 +23,7 @@ class AuthUser
'auth_name' => $this->user->name(),
'auth_user_active' => $this->user->active,
'auth_user_primary_dept'=> $this->user->primary_dept,
'auth_user_assign_group'=> $this->user->assign_group,
'auth_user_assign_group'=> '', //$this->user->assign_group,
]);
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;
class UserLanguage
{
public function __construct()
{
}
public function compose(View $view)
{
$path = base_path().DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'lang';
$langs = scandir($path);
$langs = array_diff($langs, ['.', '..']);
$languages = [];
foreach ($langs as $lang) {
$languages[$lang] = \Config::get('languages.'.$lang);
}
$view->with([
'langs' => $languages,
]);
}
}

View File

@@ -12,10 +12,9 @@
*/
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => 'update', 'middleware' => 'install'], function () {
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Auth::routes();
Route::post('login', ['uses' => 'Auth\AuthController@postLogin', 'as' => 'post.login']);
Route::get('auth/logout', ['uses' => 'Auth\AuthController@getLogout', 'as' => 'get.logout']);
Route::get('social/login/redirect/{provider}/{redirect?}', ['uses' => 'Auth\AuthController@redirectToProvider', 'as' => 'social.login']);
Route::get('social/login/{provider}', ['as'=>'social.login.callback', 'uses'=>'Auth\AuthController@handleProviderCallback']);
Route::get('social-sync', ['as'=>'social.sync', 'uses'=>'Client\helpdesk\GuestController@sync']);

View File

@@ -22,7 +22,7 @@ class Organization extends BaseModel
public function getUserIds()
{
$user_relations = $this->userRelation()->lists('user_id')->toArray();
$user_relations = $this->userRelation()->pluck('user_id')->toArray();
return $user_relations;
}

View File

@@ -29,7 +29,7 @@ class Filter extends Model
public function getTagsByTicketId($ticketid)
{
$filter = $this->where('key', 'tag')->where('ticket_id', $ticketid)->lists('value')->toArray();
$filter = $this->where('key', 'tag')->where('ticket_id', $ticketid)->pluck('value')->toArray();
return $filter;
}

View File

@@ -32,7 +32,7 @@ class Fields extends BaseModel
public function valuesAsString()
{
$string = '';
$values = $this->values()->lists('field_value')->toArray();
$values = $this->values()->pluck('field_value')->toArray();
if (count($values) > 0) {
$string = implode(',', $values);
}

View File

@@ -22,7 +22,7 @@ class SocialMedia extends Model
if ($key !== '' && $key !== 'redirect') {
$social = $this->where('provider', $provider)->where('key', $key)->first();
} elseif ($key !== 'redirect') {
$social = $this->where('provider', $provider)->lists('value', 'key')->toArray();
$social = $this->where('provider', $provider)->pluck('value', 'key')->toArray();
}
if (is_object($social)) {
$social = $social->value;

View File

@@ -116,7 +116,7 @@ class Ticket_ThreadOld extends Model
public function inlineAttachment($body)
{
if ($this->attach()->where('poster', 'INLINE')->get()->count() > 0) {
$search = $this->attach()->where('poster', 'INLINE')->lists('name')->toArray();
$search = $this->attach()->where('poster', 'INLINE')->pluck('name')->toArray();
foreach ($this->attach()->where('poster', 'INLINE')->get() as $key => $attach) {
$replace[$key] = "data:$attach->type;base64,".$attach->file;
}

View File

@@ -4,7 +4,9 @@ namespace App\Providers;
use App\Model\Update\BarNotification;
use Illuminate\Queue\Events\JobFailed;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
use Laravel\Dusk\DuskServiceProvider;
use Queue;
use View;
@@ -23,33 +25,20 @@ class AppServiceProvider extends ServiceProvider
{
$this->app->bind('Illuminate\Contracts\Auth\Registrar');
require_once __DIR__.'/../Http/helpers.php';
if ($this->app->environment('local', 'testing')) {
$this->app->register(DuskServiceProvider::class);
}
// if (isInstall()) {
// $this->plugin();
// }
}
public function boot()
{
Queue::failing(function (JobFailed $event) {
loging('Failed Job - '.$event->connectionName, json_encode($event->data));
$failedid = $event->failedId;
//\Artisan::call('queue:retry',['id'=>[$failedid]]);
loging('Failed Job - '.$event->connectionName, json_encode([$event->job->payload(), 'error' => $event->exception->getMessage().' file=>'.$event->exception->getFile().' line=>'.$event->exception->getLine()]));
});
// Please note the different namespace
// and please add a \ in front of your classes in the global namespace
\Event::listen('cron.collectJobs', function () {
\Cron::add('example1', '* * * * *', function () {
$this->index();
return 'No';
});
\Cron::add('example2', '*/2 * * * *', function () {
// Do some crazy things successfully every two minute
});
\Cron::add('disabled job', '0 * * * *', function () {
// Do some crazy things successfully every hour
}, false);
});
Route::singularResourceParameters(false);
$this->composer();
}
@@ -63,4 +52,70 @@ class AppServiceProvider extends ServiceProvider
view()->share($not);
});
}
public function plugin()
{
if (isPlugin('Ldap') && $this->isPluginDir('Ldap')) {
$this->app->register(\App\Plugins\Ldap\ServiceProvider::class);
}
if (isPlugin('Chat') && $this->isPluginDir('Chat')) {
$this->app->register(\App\Plugins\Chat\ServiceProvider::class);
}
if (isPlugin('Envato') && $this->isPluginDir('Envato')) {
$this->app->register(\App\Plugins\Envato\ServiceProvider::class);
}
if (isPlugin('Htrunk') && $this->isPluginDir('Htrunk')) {
$this->app->register(\App\Plugins\Htrunk\ServiceProvider::class);
}
if (isPlugin('HtrunkDocs') && $this->isPluginDir('HtrunkDocs')) {
$this->app->register(\App\Plugins\HtrunkDocs\ServiceProvider::class);
}
if (isPlugin('Licenses') && $this->isPluginDir('Licenses')) {
$this->app->register(\App\Plugins\Licenses\ServiceProvider::class);
}
if (isPlugin('Migration') && $this->isPluginDir('Migration')) {
$this->app->register(\App\Plugins\Migration\ServiceProvider::class);
}
if (isPlugin('Reseller') && $this->isPluginDir('Reseller')) {
$this->app->register(\App\Plugins\Reseller\ServiceProvider::class);
}
if (isPlugin('SMS') && $this->isPluginDir('SMS')) {
$this->app->register(\App\Plugins\SMS\ServiceProvider::class);
}
if (isPlugin('ServiceDesk') && $this->isPluginDir('ServiceDesk')) {
$this->app->register(\App\Plugins\ServiceDesk\ServiceProvider::class);
}
if (isPlugin('Social') && $this->isPluginDir('Social')) {
$this->app->register(\App\Plugins\Social\ServiceProvider::class);
}
if (isPlugin('Telephony') && $this->isPluginDir('Telephony')) {
$this->app->register(\App\Plugins\Telephony\ServiceProvider::class);
}
if (isPlugin('Zapier') && $this->isPluginDir('Zapier')) {
$this->app->register(\App\Plugins\Zapier\ServiceProvider::class);
}
if ($this->isModuleDir('Location')) {
$this->app->register(\App\Location\LocationServiceProvider::class);
}
}
public function isPluginDir($name)
{
$check = false;
if (is_dir(app_path('Plugins'.DIRECTORY_SEPARATOR.$name))) {
$check = true;
}
return $check;
}
public function isModuleDir($name)
{
$check = false;
if (is_dir(app_path($name))) {
$check = true;
}
return $check;
}
}

View File

@@ -2,7 +2,6 @@
namespace App\Providers;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
@@ -14,6 +13,7 @@ class AuthServiceProvider extends ServiceProvider
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
\App\Model\helpdesk\Ticket\Tickets::class => \App\Policies\TicketPolicy::class,
];
/**
@@ -23,9 +23,9 @@ class AuthServiceProvider extends ServiceProvider
*
* @return void
*/
public function boot(GateContract $gate)
public function boot()
{
parent::registerPolicies($gate);
parent::registerPolicies();
//
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes();
/*
* Authenticate the user's personal channel...
*/
Broadcast::channel('App.User.*', function ($user, $userId) {
return (int) $user->id === (int) $userId;
});
}
}

View File

@@ -13,10 +13,19 @@ class ComposerServiceProvider extends ServiceProvider
*/
public function boot()
{
$service_desk = '';
// if (isInstall()) {
// if (isPlugin()) {
// $service_desk = 'service::interface.agent.sidebar';
// }
// }
view()->composer(
[
'themes.default1.agent.layout.agent',
'themes.default1.agent.helpdesk.dashboard.dashboard',
'themes.default1.admin.layout.admin',
'themes.default1.admin.helpdesk.setting',
$service_desk,
], 'App\Http\ViewComposers\AgentLayout'
);
view()->composer(
@@ -30,6 +39,13 @@ class ComposerServiceProvider extends ServiceProvider
'themes.default1.admin.layout.admin',
], 'App\Http\ViewComposers\AuthUser'
);
view()->composer(
[
'themes.default1.admin.layout.admin',
'themes.default1.agent.layout.agent',
'themes.default1.client.layout.client',
], 'App\Http\ViewComposers\UserLanguage'
);
}
/**

View File

@@ -2,7 +2,6 @@
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
@@ -13,8 +12,8 @@ class EventServiceProvider extends ServiceProvider
* @var array
*/
protected $listen = [
'event.name' => [
'EventListener',
'App\Events\WorkFlowEvent' => [
'App\Listeners\WorkFlowListen',
],
];
@@ -25,9 +24,9 @@ class EventServiceProvider extends ServiceProvider
*
* @return void
*/
public function boot(DispatcherContract $events)
public function boot()
{
parent::boot($events);
parent::boot();
//
}

View File

@@ -3,12 +3,12 @@
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to the controller routes in your routes file.
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
@@ -19,28 +19,95 @@ class RouteServiceProvider extends ServiceProvider
/**
* Define your route model bindings, pattern filters, etc.
*
* @param \Illuminate\Routing\Router $router
*
* @return void
*/
public function boot(Router $router)
public function boot()
{
//
parent::boot($router);
parent::boot();
}
/**
* Define the routes for the application.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapInstallerRoutes();
$this->mapUpdateRoutes();
//
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
public function map(Router $router)
protected function mapWebRoutes()
{
$router->group(['namespace' => $this->namespace], function ($router) {
require app_path('Http/routes.php');
Route::group([
'middleware' => 'web',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/web.php');
});
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::group([
'middleware' => 'api',
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
/**
* Define the "installer" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapInstallerRoutes()
{
Route::group([
'middleware' => ['web', 'installer'],
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/installer.php');
});
}
/**
* Define the "update" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapUpdateRoutes()
{
Route::group([
'middleware' => ['web', 'redirect', 'install'],
'namespace' => $this->namespace,
'prefix' => 'app/update',
], function ($router) {
require base_path('routes/update.php');
});
}
}

View File

@@ -125,7 +125,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
$id = $this->attributes['id'];
}
$info = new UserAdditionalInfo();
$infos = $info->where('owner', $id)->lists('value', 'key')->toArray();
$infos = $info->where('owner', $id)->pluck('value', 'key')->toArray();
return $infos;
}

View File

@@ -8,18 +8,17 @@
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.2.*",
"illuminate/html": "5.*",
"laravel/framework": "5.5.*",
"laravelcollective/html": "5.*",
"vsmoraes/laravel-pdf": "1.0.1",
"propaganistas/laravel-phone": "~2.0",
"bugsnag/bugsnag-laravel": "1.*",
"filp/whoops": "~1.0",
"thomaswelton/laravel-gravatar": "~1.0",
"neitanod/forceutf8": "dev-master",
"nicolaslopezj/searchable": "1.*",
"chumper/datatable": "dev-develop",
"chumper/zipper": "0.6.x",
"tymon/jwt-auth": "0.5.*",
"chumper/zipper": "1.0.x",
"tymon/jwt-auth": "dev-develop",
"php": ">=5.5.9",
"davejamesmiller/laravel-breadcrumbs": "^3.0",
"davibennun/laravel-push-notification": "dev-laravel5",
@@ -29,33 +28,46 @@
"predis/predis": "~1.0",
"mremi/url-shortener": "^1.0",
"maatwebsite/excel": "~2.1.0",
"laravelcollective/bus": "^5.2",
"laravel/socialite": "^2.0",
"laravel/socialite": "3.0.0",
"tedivm/fetch": "0.6.*",
"unisharp/laravel-filemanager": "^1.6",
"unisharp/laravel-ckeditor": "^4.5",
"torann/geoip": "^1.0",
"yajra/laravel-datatables-oracle": "~6.0"
"yajra/laravel-datatables-oracle": "~6.0",
"flowjs/flow-php-server": "^1.0",
"doctrine/dbal": "^2.5"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"phpunit/phpunit": "~6.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0"
"symfony/dom-crawler": "3.1.*",
"symfony/css-selector": "3.1.*",
"fzaninotto/faker": "1.*",
"filp/whoops": "~2.0",
"laravel/dusk": "2.0.0"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
"App\\": "app/",
"Tests\\": "tests/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
"tests/TestCase.php",
"tests/DuskTestCase.php"
]
},
"extra": {
"laravel": {
"dont-discover": [
"laravel/dusk"
]
}
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
@@ -68,6 +80,10 @@
"post-create-project-cmd": [
"php -r \"copy('.env.example', '.env');\"",
"php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {

3814
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
<?php
return [
'env' => env('APP_ENV', 'production'),
'env' => env('APP_ENV', 'testing'),
/*
|--------------------------------------------------------------------------
| Application Debug Mode
@@ -33,7 +33,7 @@ return [
| This tells about aplication current version.
|
*/
'version' => 'Community 1.9.6',
'version' => 'Community 1.10-BETA',
/*
|--------------------------------------------------------------------------
| Application Name
@@ -97,8 +97,8 @@ return [
| will not be safe. Please do this before deploying an application!
|
*/
'key' => env('APP_KEY', 'F70u5RfMoiq7ptPR'),
'cipher' => MCRYPT_RIJNDAEL_128,
'key' => env('APP_KEY', 'base64:h3KjrHeVxyE+j6c8whTAs2YI+7goylGZ/e2vElgXT6I='),
'cipher' => 'AES-256-CBC',
/*
|--------------------------------------------------------------------------
| Logging Configuration
@@ -120,7 +120,7 @@ return [
|to FAVEO team when any exception/error occurs or not. True value of this variable will
|allow application to send error reports to FAVEO team's bugsnag log.
*/
'bugsnag_reporting' => env('APP_BUGSNAG', true),
'bugsnag_reporting' => env('APP_BUGSNAG', false),
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
@@ -132,13 +132,11 @@ return [
|
*/
'providers' => [
'Illuminate\Broadcasting\BroadcastServiceProvider',
'DaveJamesMiller\Breadcrumbs\ServiceProvider',
/*
* Laravel Framework Service Providers...
*/
'Illuminate\Auth\AuthServiceProvider',
'Illuminate\Bus\BusServiceProvider',
'Illuminate\Cache\CacheServiceProvider',
@@ -159,7 +157,9 @@ return [
'Illuminate\Translation\TranslationServiceProvider',
'Illuminate\Validation\ValidationServiceProvider',
'Illuminate\View\ViewServiceProvider',
'Illuminate\Html\HtmlServiceProvider',
Illuminate\Notifications\NotificationServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
/*
* Application Service Providers...
*/
@@ -174,14 +174,14 @@ return [
'Thomaswelton\LaravelGravatar\LaravelGravatarServiceProvider',
'Chumper\Datatable\DatatableServiceProvider',
'Chumper\Zipper\ZipperServiceProvider',
'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
\Torann\GeoIP\GeoIPServiceProvider::class,
Unisharp\Laravelfilemanager\LaravelFilemanagerServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Unisharp\Ckeditor\ServiceProvider::class,
LaravelFCM\FCMServiceProvider::class,
Barryvdh\Debugbar\ServiceProvider::class,
Collective\Bus\BusServiceProvider::class,
//Collective\Bus\BusServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
App\FaveoLog\LaravelLogViewerServiceProvider::class,
@@ -231,8 +231,8 @@ return [
'URL' => 'Illuminate\Support\Facades\URL',
'Validator' => 'Illuminate\Support\Facades\Validator',
'View' => 'Illuminate\Support\Facades\View',
'Form' => 'Illuminate\Html\FormFacade',
'HTML' => 'Illuminate\Html\HtmlFacade',
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
'phone' => 'The :attribute field contains an invalid number.',
'Bugsnag' => 'Bugsnag\BugsnagLaravel\BugsnagFacade',
'PDF' => 'Vsmoraes\Pdf\PdfFacade',
@@ -255,7 +255,6 @@ return [
'UnAuth' => 'App\Http\Controllers\Client\helpdesk\UnAuthController',
'Finder' => App\Helper\Finder::class,
'Datatables' => Yajra\Datatables\Facades\Datatables::class,
'Notification' => Illuminate\Support\Facades\Notification::class,
],
];

View File

@@ -13,7 +13,7 @@ return [
|
*/
'default' => env('BROADCAST_DRIVER', 'pusher'),
'default' => env('BROADCAST_DRIVER', 'log'),
/*
|--------------------------------------------------------------------------

View File

@@ -15,7 +15,7 @@ return [
|
*/
'driver' => '',
'driver' => env('MAIL', 'smtp'),
/*
|--------------------------------------------------------------------------
| SMTP Host Address

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateFaveoMailsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('faveo_mails', function (Blueprint $table) {
$table->increments('id');
$table->integer('email_id');
$table->string('drive');
$table->string('key');
$table->string('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('faveo_mails');
}
}

View File

@@ -1,33 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateFaveoQueuesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('faveo_queues', function (Blueprint $table) {
$table->increments('id');
$table->integer('service_id');
$table->string('key');
$table->string('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('faveo_queues');
}
}

View File

@@ -1,42 +0,0 @@
<?php
use App\Model\MailJob\MailService;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateMailServicesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('mail_services', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('short_name');
$table->timestamps();
});
$mail = new MailService();
$services = ['smtp'=>'SMTP', 'mail'=>'Php Mail', 'sendmail'=>'Send Mail', 'mailgun'=>'Mailgun', 'mandrill'=>'Mandrill', 'log'=>'Log file'];
foreach ($services as $key=>$value) {
$mail->create([
'name' => $value,
'short_name'=> $key,
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('mail_services');
}
}

View File

@@ -1,48 +0,0 @@
<?php
use App\Model\MailJob\QueueService;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateQueueServicesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('queue_services', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('short_name');
$table->integer('status');
$table->timestamps();
});
$queue = new QueueService();
$services = ['database'=>'Local Database', 'beanstalkd'=>'Beanstalkd', 'sqs'=>'SQS', 'iron'=>'Iron', 'redis'=>'Redis'];
$status = 0;
foreach ($services as $key=>$value) {
if ($key === 'database') {
$status = 1;
}
$queue->create([
'name' => $value,
'short_name'=> $key,
'status' => $status,
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('queue_services');
}
}

View File

@@ -1,32 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateConditionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('conditions', function (Blueprint $table) {
$table->increments('id');
$table->string('job');
$table->string('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('conditions');
}
}

View File

@@ -1,33 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateSocialMediaTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('social_media', function (Blueprint $table) {
$table->increments('id');
$table->string('provider');
$table->string('key');
$table->string('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('social_media');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateUserAdditionalInfosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('user_additional_infos', function (Blueprint $table) {
$table->increments('id');
$table->integer('owner');
$table->string('service');
$table->string('key');
$table->string('value')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('user_additional_infos');
}
}

View File

@@ -1,49 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AlterTicketSourceTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if (!Schema::hasColumn('ticket_source', 'css_class')) {
Schema::table('ticket_source', function (Blueprint $table) {
$table->string('css_class');
});
}
DB::table('ticket_source')->delete();
$values = $this->values();
foreach ($values as $value) {
DB::table('ticket_source')->insert($value);
}
}
public function values()
{
return[
['name' => 'web', 'value' => 'Web', 'css_class' => 'fa fa-internet-explorer'],
['name' => 'email', 'value' => 'E-mail', 'css_class' => 'fa fa-envelope'],
['name' => 'agent', 'value' => 'Agent Panel', 'css_class' => 'fa fa-envelope'],
['name' => 'facebook', 'value' => 'Facebook', 'css_class' => 'fa fa-facebook'],
['name' => 'twitter', 'value' => 'Twitter', 'css_class' => 'fa fa-twitter'],
];
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('ticket_source', function (Blueprint $table) {
//
});
}
}

View File

@@ -1,49 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AlterTicketSourceTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if (!Schema::hasColumn('ticket_source', 'css_class')) {
Schema::table('ticket_source', function (Blueprint $table) {
$table->string('css_class');
});
}
DB::table('ticket_source')->delete();
$values = $this->values();
foreach ($values as $value) {
DB::table('ticket_source')->insert($value);
}
}
public function values()
{
return[
['name' => 'web', 'value' => 'Web', 'css_class' => 'fa fa-internet-explorer'],
['name' => 'email', 'value' => 'E-mail', 'css_class' => 'fa fa-envelope'],
['name' => 'agent', 'value' => 'Agent Panel', 'css_class' => 'fa fa-envelope'],
['name' => 'facebook', 'value' => 'Facebook', 'css_class' => 'fa fa-facebook'],
['name' => 'twitter', 'value' => 'Twitter', 'css_class' => 'fa fa-twitter'],
];
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('ticket_source', function (Blueprint $table) {
//
});
}
}

17
routes/api.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::get('/user/test', function (Request $request) {
return $request->user();
})->middleware('auth:api');

77
routes/console.php Normal file
View File

@@ -0,0 +1,77 @@
<?php
use App\Model\helpdesk\Settings\System;
use Illuminate\Foundation\Inspiring;
/*
|--------------------------------------------------------------------------
| Console Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of your Closure based console
| commands. Each Closure is bound to a command instance allowing a
| simple approach to interacting with each command's IO methods.
|
*/
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->describe('Display an inspiring quote');
Artisan::command('mac-update', function () {
$emails = new App\Model\helpdesk\Email\Emails();
$emails->update(['password'=>encrypt('')]);
})->describe('Updating encrypted value to null');
Artisan::command('sla-escalate', function () {
$noti = new \App\Http\Controllers\Agent\helpdesk\Notifications\NotificationController();
$noti->notificationSla();
})->describe('to send notification for sla due');
/*
* Command for pre install check
*/
Artisan::command('preinsatall:check', function () {
try {
$check_for_pre_installation = System::select('id')->first();
if ($check_for_pre_installation) {
throw new \Exception('The data in database already exist. Please provide fresh database', 100);
}
} catch (\Exception $ex) {
if ($ex->getCode() == 100) {
$this->call('droptables');
}
//throw new \Exception($ex->getMessage());
}
$this->info('Preinstall has checked successfully');
})->describe('check for the pre installation');
/*
* Migration for installation
*/
Artisan::command('install:migrate', function () {
try {
$tableNames = \Schema::getConnection()->getDoctrineSchemaManager()->listTableNames();
if (count($tableNames) == 0) {
$this->call('migrate', ['--force' => true]);
}
} catch (Exception $ex) {
throw new \Exception($ex->getMessage());
}
$this->info('Migrated successfully');
})->describe('migration for install');
/*
* Seeding for installation
*/
Artisan::command('install:seed', function () {
\Schema::disableForeignKeyConstraints();
$tableNames = \Schema::getConnection()->getDoctrineSchemaManager()->listTableNames();
foreach ($tableNames as $name) {
if ($name == 'migrations') {
continue;
}
\DB::table($name)->truncate();
}
$this->call('db:seed', ['--force' => true]);
$this->info('seeded successfully');
})->describe('Seeding for install');

96
routes/installer.php Normal file
View File

@@ -0,0 +1,96 @@
<?php
Route::get('serial', [
'as' => 'serialkey',
'uses' => 'Installer\helpdesk\InstallController@serialkey',
]);
Route::post('/post-serial', [
'as' => 'post.serialkey',
'uses' => 'Installer\helpdesk\InstallController@postSerialKeyToFaveo',
]);
Route::post('/post-bill', [
'as' => 'return.bill',
'uses' => 'Installer\helpdesk\InstallController@returnFormBilling',
]);
Route::get('/JavaScript-disabled', [
'as' => 'js-disabled',
'uses' => 'Installer\helpdesk\InstallController@jsDisabled',
]);
Route::get('/step1', [
'as' => 'licence',
'uses' => 'Installer\helpdesk\InstallController@licence',
]);
Route::post('/step1post', [
'as' => 'postlicence',
'uses' => 'Installer\helpdesk\InstallController@licencecheck',
]);
Route::get('/step2', [
'as' => 'prerequisites',
'uses' => 'Installer\helpdesk\InstallController@prerequisites',
]);
Route::post('/step2post', [
'as' => 'postprerequisites',
'uses' => 'Installer\helpdesk\InstallController@prerequisitescheck',
]);
Route::get('/step3', [
'as' => 'configuration',
'uses' => 'Installer\helpdesk\InstallController@configuration',
]);
Route::post('/step4post', [
'as' => 'postconfiguration',
'uses' => 'Installer\helpdesk\InstallController@configurationcheck',
]);
Route::get('/step4', [
'as' => 'database',
'uses' => 'Installer\helpdesk\InstallController@database',
]);
Route::get('/step5', [
'as' => 'account',
'uses' => 'Installer\helpdesk\InstallController@account',
]);
Route::post('/step6post', [
'as' => 'postaccount',
'uses' => 'Installer\helpdesk\InstallController@accountcheck',
]);
Route::get('/final', [
'as' => 'final',
'uses' => 'Installer\helpdesk\InstallController@finalize',
]);
Route::post('/finalpost', [
'as' => 'postfinal',
'uses' => 'Installer\helpdesk\InstallController@finalcheck',
]);
Route::post('/postconnection', [
'as' => 'postconnection',
'uses' => 'Installer\helpdesk\InstallController@postconnection',
]);
Route::get('/change-file-permission', [
'as' => 'change-permission',
'uses' => 'Installer\helpdesk\InstallController@changeFilePermission',
]);
Route::get('create/env', [
'as' => 'create.env',
'uses' => 'Installer\helpdesk\InstallController@createEnv',
]);
Route::get('preinstall/check', [
'as' => 'preinstall.check',
'uses' => 'Installer\helpdesk\InstallController@checkPreInstall',
]);
Route::get('migrate', [
'as' => 'migrate',
'uses' => 'Installer\helpdesk\InstallController@migrate',
]);
Route::get('seed', [
'as' => 'seed',
'uses' => 'Installer\helpdesk\InstallController@seed',
]);
Route::get('update/install', [
'as' => 'update.install',
'uses' => 'Installer\helpdesk\InstallController@updateInstalEnv',
]);

15
routes/update.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
/**
* upgrade from 1.9.6 to 1.9.7.
*/
Route::get('1-9-7', function () {
if (\Schema::hasTable('ticket_type')) {
return redirect('/')->with(['success'=>'You are application is up to date']);
}
\Artisan::call('migrate', ['--force'=>true]);
\Artisan::call('db:seed', ['--class'=>'TickettypeSeeder', '--force'=>true]);
\Artisan::call('db:seed', ['--class'=>'CustomFormSeeder', '--force'=>true]);
\Artisan::call('view:clear');
return redirect('/')->with(['success'=>'Application has upgraded to 1.9.7 from 1.9.6']);
});

840
routes/web.php Normal file
View File

@@ -0,0 +1,840 @@
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => 'update', 'middleware' => 'install'], function () {
Auth::routes();
Route::post('login', ['uses' => 'Auth\AuthController@postLogin', 'as' => 'post.login']);
Route::get('auth/logout', ['uses' => 'Auth\AuthController@getLogout', 'as' => 'get.logout']);
Route::get('social/login/redirect/{provider}/{redirect?}', ['uses' => 'Auth\AuthController@redirectToProvider', 'as' => 'social.login']);
Route::get('social/login/{provider}', ['as'=>'social.login.callback', 'uses'=>'Auth\AuthController@handleProviderCallback']);
Route::get('social-sync', ['as'=>'social.sync', 'uses'=>'Client\helpdesk\GuestController@sync']);
});
/*
|-------------------------------------------------------------------------------
| @Anjali
|-------------------------------------------------------------------------------
| Here is defining entire routes for the Admin Panel
|
*/
Route::get('password/email/{one?}/{two?}/{three?}/{four?}/{five?}', ['as' => 'password.email', 'uses' => 'Auth\PasswordController@getEmail']);
Breadcrumbs::register('password.email', function ($breadcrumbs) {
$breadcrumbs->parent('/');
$breadcrumbs->push('Login', url('auth/login'));
$breadcrumbs->push('Forgot Password', url('password/email'));
});
// register page
Route::get('auth/register/{one?}/{two?}/{three?}/{four?}/{five?}', ['as' => 'auth.register', 'uses' => 'Auth\AuthController@getRegister']);
Breadcrumbs::register('auth.register', function ($breadcrumbs) {
$breadcrumbs->parent('/');
$breadcrumbs->push('Login', url('auth/login'));
$breadcrumbs->push('Create Account', url('auth/register'));
});
// Auth login
Route::get('auth/login/{one?}/{two?}/{three?}/{four?}/{five?}', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@getLogin']);
Breadcrumbs::register('auth.login', function ($breadcrumbs) {
$breadcrumbs->parent('/');
$breadcrumbs->push('Create Account', url('auth/register'));
$breadcrumbs->push('Login', url('auth/login'));
});
Route::get('account/activate/{token}', ['as' => 'account.activate', 'uses' => 'Auth\AuthController@accountActivate']);
Route::get('getmail/{token}', 'Auth\AuthController@getMail');
Route::get('verify-otp', ['as' => 'otp-verification', 'uses' => 'Auth\AuthController@getVerifyOTP']);
Route::post('verify-otp', ['as' => 'otp-verification', 'uses' => 'Auth\AuthController@verifyOTP']);
Route::post('resend/opt', ['as' => 'resend-otp', 'uses' => 'Auth\AuthController@resendOTP']);
/*
|-------------------------------------------------------------------------------
| Admin Routes
|-------------------------------------------------------------------------------
| Here is defining entire routes for the Admin Panel
|
*/
Route::group(['middleware' => 'roles', 'middleware' => 'auth', 'middleware' => 'install', 'middleware' => 'update'], function () {
//Notification marking
Route::post('mark-read/{id}', 'Common\NotificationController@markRead');
Route::post('mark-all-read/{id}', 'Common\NotificationController@markAllRead');
Route::get('notifications-list', ['as' => 'notification.list', 'uses' => 'Common\NotificationController@show']);
Route::post('notification-delete/{id}', ['as' => 'notification.delete', 'uses' => 'Common\NotificationController@delete']);
Route::get('notifications-list/delete', ['as' => 'notification.delete.all', 'uses' => 'Common\NotificationController@deleteAll']);
Route::get('settings-notification', ['as' => 'notification.settings', 'uses' => 'Admin\helpdesk\SettingsController@notificationSettings']);
Route::get('delete-read-notification', 'Admin\helpdesk\SettingsController@deleteReadNoti');
Route::post('delete-notification-log', 'Admin\helpdesk\SettingsController@deleteNotificationLog');
// resource is a function to process create,edit,read and delete
Route::resource('groups', 'Admin\helpdesk\GroupController'); // for group module, for CRUD
Route::resource('departments', 'Admin\helpdesk\DepartmentController'); // for departments module, for CRUD
Route::resource('teams', 'Admin\helpdesk\TeamController'); // in teams module, for CRUD
Route::get('/teams/show/{id}', ['as' => 'teams.show', 'uses' => 'Admin\helpdesk\TeamController@show']); /* Get Team View */
Breadcrumbs::register('teams.show', function ($breadcrumbs) {
$breadcrumbs->parent('teams.index');
$breadcrumbs->push(Lang::get('lang.show'), url('teams/{teams}/show'));
});
Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpdesk\TeamController@getshow']);
Route::resource('agents', 'Admin\helpdesk\AgentController'); // in agents module, for CRUD
Route::resource('emails', 'Admin\helpdesk\EmailsController'); // in emails module, for CRUD
Route::resource('banlist', 'Admin\helpdesk\BanlistController'); // in banlist module, for CRUD
Route::get('banlist/delete/{id}', ['as' => 'banlist.delete', 'uses' => 'Admin\helpdesk\BanlistController@delete']); // in banlist module, for CRUD
/*
* Templates
*/
Route::resource('templates', 'Common\TemplateController');
Route::get('get-templates', 'Common\TemplateController@GetTemplates');
Route::get('templates-delete', 'Common\TemplateController@destroy');
Route::get('testmail/{id}', 'Common\TemplateController@mailtest');
Route::resource('template-sets', 'Common\TemplateSetController'); // in template module, for CRUD
Route::get('delete-sets/{id}', ['as' => 'sets.delete', 'uses' => 'Common\TemplateSetController@deleteSet']);
Route::get('show-template/{id}', ['as' => 'show.templates', 'uses' => 'Common\TemplateController@showTemplate']);
Route::get('activate-templateset/{name}', ['as' => 'active.template-set', 'uses' => 'Common\TemplateSetController@activateSet']);
Route::resource('template', 'Admin\helpdesk\TemplateController'); // in template module, for CRUD
Route::get('list-directories', 'Admin\helpdesk\TemplateController@listdirectories');
Route::get('activate-set/{dir}', ['as' => 'active.set', 'uses' => 'Admin\helpdesk\TemplateController@activateset']);
Route::get('list-templates/{template}/{directory}', ['as' => 'template.list', 'uses' => 'Admin\helpdesk\TemplateController@listtemplates']);
Route::get('read-templates/{template}/{directory}', ['as' => 'template.read', 'uses' => 'Admin\helpdesk\TemplateController@readtemplate']);
Route::patch('write-templates/{contents}/{directory}', ['as' => 'template.write', 'uses' => 'Admin\helpdesk\TemplateController@writetemplate']);
Route::post('create-templates', ['as' => 'template.createnew', 'uses' => 'Admin\helpdesk\TemplateController@createtemplate']);
Route::get('delete-template/{template}/{path}', ['as' => 'templates.delete', 'uses' => 'Admin\helpdesk\TemplateController@deletetemplate']);
Route::get('getdiagno', ['as' => 'getdiagno', 'uses' => 'Admin\helpdesk\TemplateController@formDiagno']); // for getting form for diagnostic
Route::post('postdiagno', ['as' => 'postdiagno', 'uses' => 'Admin\helpdesk\TemplateController@postDiagno']); // for getting form for diagnostic
Route::resource('helptopic', 'Admin\helpdesk\HelptopicController'); // in helptopics module, for CRUD
Route::resource('sla', 'Admin\helpdesk\SlaController'); // in SLA Plan module, for CRUD
Route::resource('forms', 'Admin\helpdesk\FormController');
Route::get('forms/add-child/{formid}', ['as' => 'forms.add.child', 'uses' => 'Admin\helpdesk\FormController@addChildForm']);
Route::post('forms/field/{fieldid}/child', [
'as' => 'forms.field.child',
'uses' => 'Admin\helpdesk\FormController@addChild',
]);
Route::get('forms/render/child', [
'as' => 'forms.field.child',
'uses' => 'Admin\helpdesk\FormController@renderChild',
]);
Route::get('delete-forms/{id}', ['as' => 'forms.delete', 'uses' => 'Admin\helpdesk\FormController@delete']);
//$router->model('id','getcompany');
Route::get('job-scheduler', ['as' => 'get.job.scheder', 'uses' => 'Admin\helpdesk\SettingsController@getSchedular']); //to get ob scheduler form page
Route::patch('post-scheduler', ['as' => 'post.job.scheduler', 'uses' => 'Admin\helpdesk\SettingsController@postSchedular']); //to update job scheduler
Route::get('agent-profile-page/{id}', ['as' => 'agent.profile.page', 'uses' => 'Admin\helpdesk\AgentController@agent_profile']);
Route::get('getcompany', ['as' => 'getcompany', 'uses' => 'Admin\helpdesk\SettingsController@getcompany']); // direct to company setting page
Route::patch('postcompany/{id}', 'Admin\helpdesk\SettingsController@postcompany'); // Updating the Company table with requests
Route::get('delete-logo', ['as' => 'delete.logo', 'uses' => 'Admin\helpdesk\SettingsController@deleteLogo']); // deleting a logo
Route::get('getsystem', ['as' => 'getsystem', 'uses' => 'Admin\helpdesk\SettingsController@getsystem']); // direct to system setting page
Route::patch('postsystem/{id}', 'Admin\helpdesk\SettingsController@postsystem'); // Updating the System table with requests
Route::get('getticket', ['as' => 'getticket', 'uses' => 'Admin\helpdesk\SettingsController@getticket']); // direct to ticket setting page
Route::patch('postticket/{id}', 'Admin\helpdesk\SettingsController@postticket'); // Updating the Ticket table with requests
Route::get('getemail', ['as' => 'getemail', 'uses' => 'Admin\helpdesk\SettingsController@getemail']); // direct to email setting page
Route::get('ticket/tooltip', ['as'=>'ticket.tooltip', 'uses'=>'Agent\helpdesk\TicketController@getTooltip']);
Route::patch('postemail/{id}', 'Admin\helpdesk\SettingsController@postemail'); // Updating the Email table with requests
// Route::get('getaccess', 'Admin\helpdesk\SettingsController@getaccess'); // direct to access setting page
// Route::patch('postaccess/{id}', 'Admin\helpdesk\SettingsController@postaccess'); // Updating the Access table with requests
Route::get('getresponder', ['as' => 'getresponder', 'uses' => 'Admin\helpdesk\SettingsController@getresponder']); // direct to responder setting page
Route::patch('postresponder/{id}', 'Admin\helpdesk\SettingsController@postresponder'); // Updating the Responder table with requests
Route::get('getalert', ['as' => 'getalert', 'uses' => 'Admin\helpdesk\SettingsController@getalert']); // direct to alert setting page
Route::patch('postalert/{id}', 'Admin\helpdesk\SettingsController@postalert'); // Updating the Alert table with requests
// Templates
Route::get('security', ['as' => 'security.index', 'uses' => 'Admin\helpdesk\SecurityController@index']); // direct to security setting page
Route::resource('close-workflow', 'Admin\helpdesk\CloseWrokflowController'); // direct to security setting page
Route::resource('close-workflow', 'Admin\helpdesk\CloseWrokflowController'); // direct to security setting page
Route::patch('security/{id}', ['as' => 'securitys.update', 'uses' => 'Admin\helpdesk\SecurityController@update']); // direct to security setting page
Route::get('setting-status', ['as' => 'statuss.index', 'uses' => 'Admin\helpdesk\SettingsController@getStatuses']); // direct to status setting page
Route::patch('status-update/{id}', ['as' => 'statuss.update', 'uses' => 'Admin\helpdesk\SettingsController@editStatuses']);
Route::get('status/edit/{id}', ['as' => 'status.edit', 'uses' => 'Admin\helpdesk\SettingsController@getEditStatuses']);
Route::post('status-create', ['as' => 'statuss.create', 'uses' => 'Admin\helpdesk\SettingsController@createStatuses']);
Route::get('status-delete/{id}', ['as' => 'statuss.delete', 'uses' => 'Admin\helpdesk\SettingsController@deleteStatuses']);
Route::get('ticket/status/{id}/{state}', ['as' => 'statuss.state', 'uses' => 'Agent\helpdesk\TicketController@updateStatuses']);
Route::get('getratings', ['as' => 'ratings.index', 'uses' => 'Admin\helpdesk\SettingsController@RatingSettings']);
Route::get('deleter/{rating}', ['as' => 'ratings.delete', 'uses' => 'Admin\helpdesk\SettingsController@RatingDelete']);
Route::get('create-ratings', ['as' => 'rating.create', 'uses' => 'Admin\helpdesk\SettingsController@createRating']);
Route::post('store-ratings', ['as' => 'rating.store', 'uses' => 'Admin\helpdesk\SettingsController@storeRating']);
Route::get('editratings/{slug}', ['as' => 'rating.edit', 'uses' => 'Admin\helpdesk\SettingsController@editRatingSettings']);
Route::patch('postratings/{slug}', ['as' => 'settings.rating', 'uses' => 'Admin\helpdesk\SettingsController@PostRatingSettings']);
Route::get('remove-user-org/{id}', ['as' => 'removeuser.org', 'uses' => 'Agent\helpdesk\UserController@removeUserOrg']);
Route::get('admin-profile', ['as' => 'admin-profile', 'uses' => 'Admin\helpdesk\ProfileController@getProfile']); /* User profile edit get */
Route::get('admin-profile-edit', 'Admin\helpdesk\ProfileController@getProfileedit'); /* Admin profile get */
Route::patch('admin-profile', 'Admin\helpdesk\ProfileController@postProfileedit'); /* Admin Profile Post */
Route::patch('admin-profile-password', 'Admin\helpdesk\ProfileController@postProfilePassword'); /* Admin Profile Password Post */
Route::get('widgets', ['as' => 'widgets', 'uses' => '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', ['as' => 'social.buttons', 'uses' => 'Common\SettingsController@social_buttons']); /* get the create footer page for admin */
Route::get('list-social-buttons', ['as' => 'list.social.buttons', 'uses' => '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::get('version-check', ['as' => 'version-check', 'uses' => 'Common\SettingsController@version_check']); /* Check version */
Route::post('post-version-check', ['as' => 'post-version-check', 'uses' => 'Common\SettingsController@post_version_check']); /* post Check version */
Route::get('admin', ['as' => 'setting', 'uses' => 'Admin\helpdesk\SettingsController@settings']);
Route::get('plugins', ['as' => 'plugins', 'uses' => 'Common\SettingsController@Plugins']);
Route::get('getplugin', ['as' => 'get.plugin', 'uses' => 'Common\SettingsController@GetPlugin']);
Route::post('post-plugin', ['as' => 'post.plugin', 'uses' => 'Common\SettingsController@PostPlugins']);
Route::get('getconfig', ['as' => 'get.config', 'uses' => 'Common\SettingsController@fetchConfig']);
Route::get('plugin/delete/{slug}', ['as' => 'delete.plugin', 'uses' => 'Common\SettingsController@DeletePlugin']);
Route::get('plugin/status/{slug}', ['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']);
Route::get('get-languages', ['as' => 'getAllLanguages', 'uses' => 'Admin\helpdesk\LanguageController@getLanguages']);
Route::get('change-language/{lang}', ['as' => 'lang.switch', 'uses' => 'Admin\helpdesk\LanguageController@switchLanguage']);
//Route for download language template package
Route::get('/download-template', ['as' => 'download', 'uses' => 'Admin\helpdesk\LanguageController@download']);
//Routes for language file upload form-----------You may want to use csrf protection for these route--------------
Route::post('language/add', 'Admin\helpdesk\LanguageController@postForm');
Route::get('language/add', ['as' => 'add-language', 'uses' => 'Admin\helpdesk\LanguageController@getForm']);
//Routes for delete language package
Route::get('delete-language/{lang}', ['as' => 'lang.delete', 'uses' => 'Admin\helpdesk\LanguageController@deleteLanguage']);
Route::get('generate-api-key', 'Admin\helpdesk\SettingsController@GenerateApiKey'); // route to generate api key
Route::post('validating-email-settings', ['as' => 'validating.email.settings', 'uses' => 'Admin\helpdesk\EmailsController@validatingEmailSettings']); // route to check email input validation
Route::post('validating-email-settings-on-update/{id}', ['as' => 'validating.email.settings.update', 'uses' => 'Admin\helpdesk\EmailsController@validatingEmailSettingsUpdate']); // route to check email input validation
Route::get('workflow', ['as' => 'workflow', 'uses' => 'Admin\helpdesk\WorkflowController@index']);
Route::get('workflow-list', ['as' => 'workflow.list', 'uses' => 'Admin\helpdesk\WorkflowController@workFlowList']);
Route::get('workflow/create', ['as' => 'workflow.create', 'uses' => 'Admin\helpdesk\WorkflowController@create']);
Route::post('workflow/store', ['as' => 'workflow.store', 'uses' => 'Admin\helpdesk\WorkflowController@store']);
Route::get('workflow/edit/{id}', ['as' => 'workflow.edit', 'uses' => 'Admin\helpdesk\WorkflowController@edit']);
Route::post('workflow/update/{id}', ['as' => 'workflow.update', 'uses' => 'Admin\helpdesk\WorkflowController@update']);
Route::get('workflow/action-rule/{id}', ['as' => 'workflow.dept', 'uses' => 'Admin\helpdesk\WorkflowController@selectAction']);
Route::get('workflow/delete/{id}', ['as' => 'workflow.delete', 'uses' => 'Admin\helpdesk\WorkflowController@destroy']);
/*
* Api Settings
*/
Route::get('api', ['as' => 'api.settings.get', 'uses' => 'Common\ApiSettings@show']);
Route::post('api', ['as' => 'api.settings.post', 'uses' => 'Common\ApiSettings@postSettings']);
/*
* Error and debugging
*/
//route for showing error and debugging setting form page
Route::get('error-and-debugging-options', ['as' => 'err.debug.settings', 'uses' => 'Admin\helpdesk\ErrorAndDebuggingController@showSettings']);
//route for submit error and debugging setting form page
Route::post('post-settings', ['as' => 'post.error.debug.settings',
'uses' => 'Admin\helpdesk\ErrorAndDebuggingController@postSettings', ]);
//route to error logs table page
Route::get('show-error-logs', [
'as' => 'error.logs',
'uses' => 'Admin\helpdesk\ErrorAndDebuggingController@showErrorLogs',
]);
/*
* Approval
*/
Route::get('approval/settings', ['as' => 'approval.settings', 'uses' => 'Agent\helpdesk\TicketController@settingsApproval']);
Route::post('settingsUpdateApproval/settings', ['as' => 'settingsUpdateApproval.settings', 'uses' => 'Agent\helpdesk\TicketController@settingsUpdateApproval']);
Route::get('/ticket/approval/closed', ['as' => 'closed.approvel.ticket', 'uses' => 'Agent\helpdesk\TicketController@approverClosedTicketList']); /* Get Closed Ticket */
Route::get('/ticket/get-approval', ['as' => 'get.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getApproval']); /* Get tickets in datatable */
Route::get('/ticket/close/get-approval/{id}', ['as' => 'get.close.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getCloseapproval']); /* Get tickets in datatable */
/*
* Labels
*/
Route::resource('labels', 'Admin\helpdesk\Label\LabelController');
Route::get('labels-ajax', ['as'=>'labels.ajax', 'uses'=>'Admin\helpdesk\Label\LabelController@ajaxTable']);
Route::get('labels/delete/{id}', ['as' => 'labels.destroy', 'uses' => 'Admin\helpdesk\Label\LabelController@destroy']);
});
/*
|------------------------------------------------------------------
|Agent Routes
|--------------------------------------------------------------------
| Here defining entire Agent Panel routers
|
|
*/
Route::group(['middleware' => 'role.agent', 'middleware' => 'auth', 'middleware' => 'install', 'middleware' => 'update'], function () {
Route::post('chart-range/{date1}/{date2}', ['as' => 'post.chart', 'uses' => 'Agent\helpdesk\DashboardController@ChartData']);
Route::get('agen1', 'Agent\helpdesk\DashboardController@ChartData');
Route::post('chart-range', ['as' => 'post.chart', 'uses' => 'Agent\helpdesk\DashboardController@ChartData']);
Route::post('user-chart-range/{id}/{date1}/{date2}', ['as' => 'post.user.chart', 'uses' => 'Agent\helpdesk\DashboardController@userChartData']);
Route::get('user-agen/{id}', 'Agent\helpdesk\DashboardController@userChartData');
Route::get('user-agen1', 'Agent\helpdesk\DashboardController@userChartData');
Route::post('user-chart-range', ['as' => 'post.user.chart', 'uses' => 'Agent\helpdesk\DashboardController@userChartData']);
Route::resource('user', 'Agent\helpdesk\UserController'); /* User router is used to control the CRUD of user */
Route::get('user-export', ['as' => 'user.export', 'uses' => 'Agent\helpdesk\UserController@getExportUser']); /* User router is used to control the CRUD of user */
Route::post('user-export', ['as' => 'user.export.post', 'uses' => 'Agent\helpdesk\UserController@exportUser']); /* 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::resource('organizations', 'Agent\helpdesk\OrganizationController'); /* organization router used to deal CRUD function of organization */
Route::get('get-organization', ['as' => 'org.get.ajax', 'uses' => 'Agent\helpdesk\OrganizationController@getOrgAjax']);
Route::get('org-list', ['as' => 'org.list', 'uses' => 'Agent\helpdesk\OrganizationController@org_list']);
Route::get('organization-autofill', ['as' => 'post.organization.autofill', 'uses' => 'Agent\helpdesk\OrganizationController@organizationAutofill']); //auto fill organization name
Route::get('org/delete/{id}', ['as' => 'org.delete', 'uses' => 'Agent\helpdesk\OrganizationController@destroy']);
Route::get('org-chart/{id}', 'Agent\helpdesk\OrganizationController@orgChartData');
// Route::post('org-chart-range', ['as' => 'post.org.chart', 'uses' => 'Agent\helpdesk\OrganizationController@orgChartData']);
Route::post('org-chart-range/{id}/{date1}/{date2}', ['as' => 'post.org.chart', 'uses' => 'Agent\helpdesk\OrganizationController@orgChartData']);
Route::get('profile', ['as' => 'profile', 'uses' => 'Agent\helpdesk\UserController@getProfile']); /* User profile get */
Route::get('profile-edit', ['as' => 'agent-profile-edit', 'uses' => 'Agent\helpdesk\UserController@getProfileedit']); /* User profile edit get */
Route::post('verify-number', ['as' => 'agent-verify-number', 'uses' => 'Agent\helpdesk\UserController@resendOTP']);
Route::post('verify-number2', ['as' => 'post-agent-verify-number', 'uses' => 'Agent\helpdesk\UserController@verifyOTP']);
Route::patch('agent-profile', ['as' => 'agent-profile', 'uses' => 'Agent\helpdesk\UserController@postProfileedit']); /* User Profile Post */
Route::patch('agent-profile-password/{id}', 'Agent\helpdesk\UserController@postProfilePassword'); /* Profile Password Post */
Route::get('canned/list', ['as' => 'canned.list', 'uses' => 'Agent\helpdesk\CannedController@index']); /* Canned list */
Route::get('canned/create', ['as' => 'canned.create', 'uses' => 'Agent\helpdesk\CannedController@create']); /* Canned create */
Route::patch('canned/store', ['as' => 'canned.store', 'uses' => 'Agent\helpdesk\CannedController@store']); /* Canned store */
Route::get('canned/edit/{id}', ['as' => 'canned.edit', 'uses' => 'Agent\helpdesk\CannedController@edit']); /* Canned edit */
Route::patch('canned/update/{id}', ['as' => 'canned.update', 'uses' => 'Agent\helpdesk\CannedController@update']); /* Canned update */
Route::get('canned/show/{id}', ['as' => 'canned.show', 'uses' => 'Agent\helpdesk\CannedController@show']); /* Canned show */
Route::delete('canned/destroy/{id}', ['as' => 'canned.destroy', 'uses' => 'Agent\helpdesk\CannedController@destroy']); /* Canned delete */
Route::get('/test', ['as' => 'thr', 'uses' => 'Agent\helpdesk\MailController@fetchdata']); /* Fetch Emails */
Route::get('/ticket', ['as' => 'ticket', 'uses' => 'Agent\helpdesk\TicketController@ticket_list']); /* Get Ticket */
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/get-overdue', ['as' => 'get.overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@getOverdueTickets']); /* 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::get('/newticket/autofill', ['as' => 'post.newticket.autofill', 'uses' => 'Agent\helpdesk\TicketController@autofill']);
Route::post('/newticket/post', ['as' => 'post.newticket', 'uses' => 'Agent\helpdesk\TicketController@post_newticket']); /* Post Create New Ticket */
Route::get('/thread/{id}', ['as' => 'ticket.thread', 'uses' => 'Agent\helpdesk\TicketController@thread']); /* Get Thread by ID */
Route::post('/thread/reply/{id}', ['as' => 'ticket.reply', 'uses' => 'Agent\helpdesk\TicketController@reply']); /* Patch Thread Reply */
Route::patch('/internal/note/{id}', ['as' => 'Internal.note', 'uses' => 'Agent\helpdesk\TicketController@InternalNote']); /* Patch Internal Note */
Route::patch('/ticket/assign/{id}', ['as' => 'assign.ticket', 'uses' => 'Agent\helpdesk\TicketController@assign']); /* Patch Ticket assigned to whom */
Route::patch('/ticket/post/edit/{id}', ['as' => 'ticket.post.edit', 'uses' => 'Agent\helpdesk\TicketController@ticketEditPost']); /* Patchi Ticket Edit */
Route::get('/ticket/print/{id}', ['as' => 'ticket.print', 'uses' => 'Agent\helpdesk\TicketController@ticket_print']); /* Get Print Ticket */
Route::get('/ticket/close/{id}', ['as' => 'ticket.close', 'uses' => 'Agent\helpdesk\TicketController@close']); /* Get Ticket Close */
Route::get('/ticket/resolve/{id}', ['as' => 'ticket.resolve', 'uses' => 'Agent\helpdesk\TicketController@resolve']); /* Get ticket Resolve */
Route::get('/ticket/open/{id}', ['as' => 'ticket.open', 'uses' => 'Agent\helpdesk\TicketController@open']); /* Get Ticket Open */
Route::get('/ticket/delete/{id}', ['as' => 'ticket.delete', 'uses' => 'Agent\helpdesk\TicketController@delete']); /* Get Ticket Delete */
Route::get('/email/ban/{id}', ['as' => 'ban.email', 'uses' => 'Agent\helpdesk\TicketController@ban']); /* Get Ban Email */
Route::get('/ticket/surrender/{id}', ['as' => 'ticket.surrender', 'uses' => 'Agent\helpdesk\TicketController@surrender']); /* Get Ticket Surrender */
Route::get('/aaaa', 'Client\helpdesk\GuestController@ticket_number');
Route::get('trash', ['as' => 'get-trash', 'uses' => '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', ['as' => 'unassigned', 'uses' => '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', ['as' => 'dashboard', 'uses' => 'Agent\helpdesk\DashboardController@index']); /* To show dashboard pages */
Route::get('agen', 'Agent\helpdesk\DashboardController@ChartData');
Route::get('image/{id}', ['as' => 'image', 'uses' => 'Agent\helpdesk\MailController@get_data']); /* get image */
Route::get('thread/auto/{id}', 'Agent\helpdesk\TicketController@autosearch');
Route::get('auto', 'Agent\helpdesk\TicketController@autosearch2');
Route::patch('search-user', 'Agent\helpdesk\TicketController@usersearch');
Route::patch('add-user', 'Agent\helpdesk\TicketController@useradd');
Route::post('remove-user', 'Agent\helpdesk\TicketController@userremove');
Route::post('select_all', ['as' => 'select_all', 'uses' => 'Agent\helpdesk\TicketController@select_all']);
Route::post('canned/{id}', 'Agent\helpdesk\CannedController@get_canned');
// Route::get('message' , 'MessageController@show');
Route::post('lock', ['as' => 'lock', 'uses' => 'Agent\helpdesk\TicketController@lock']);
Route::patch('user-org-assign/{id}', ['as' => 'user.assign.org', 'uses' => 'Agent\helpdesk\UserController@UserAssignOrg']);
Route::patch('user-org-edit-assign/{id}', ['as' => 'user.editassign.org', 'uses' => 'Agent\helpdesk\UserController@UsereditAssignOrg']);
Route::patch('/user-org/{id}', 'Agent\helpdesk\UserController@User_Create_Org');
Route::patch('/head-org/{id}', 'Agent\helpdesk\OrganizationController@Head_Org');
// Department ticket
Route::get('/{dept}/open', ['as' => 'dept.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptopen']); // Open
Route::get('tickets/{dept}/{status}', ['as' => 'dept.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptTicket']); // Open
Route::get('/{dept}/assigned', ['as' => 'dept.inprogress.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptinprogress']); // Inprogress
Route::get('/{dept}/closed', ['as' => 'dept.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptclose']); // Closed
Route::post('rating/{id}', ['as' => 'ticket.rating', 'uses' => 'Agent\helpdesk\TicketController@rating']); /* Get overall Ratings */
Route::post('rating2/{id}', ['as' => 'ticket.rating2', 'uses' => 'Agent\helpdesk\TicketController@ratingReply']); /* Get reply Ratings */
// To check and lock tickets
Route::get('check/lock/{id}', ['as' => 'lock', 'uses' => 'Agent\helpdesk\TicketController@checkLock']);
Route::patch('/change-owner/{id}', ['as' => 'change.owner.ticket', 'uses' => 'Agent\helpdesk\TicketController@changeOwner']); /* change owner */
//To merge tickets
Route::get('/get-merge-tickets/{id}', ['as' => 'get.merge.tickets', 'uses' => 'Agent\helpdesk\TicketController@getMergeTickets']);
Route::get('/check-merge-ticket/{id}', ['as' => 'check.merge.tickets', 'uses' => 'Agent\helpdesk\TicketController@checkMergeTickets']);
Route::get('/get-parent-tickets/{id}', ['as' => 'get.parent.ticket', 'uses' => 'Agent\helpdesk\TicketController@getParentTickets']);
Route::patch('/merge-tickets/{id}', ['as' => 'merge.tickets', 'uses' => 'Agent\helpdesk\TicketController@mergeTickets']);
//To get department tickets data
//open tickets of department
Route::get('/get-open-tickets/{id}', ['as' => 'get.dept.open', 'uses' => 'Agent\helpdesk\Ticket2Controller@getOpenTickets']);
//close tickets of deartment
Route::get('/get-closed-tickets/{id}', ['as' => 'get.dept.close', 'uses' => 'Agent\helpdesk\Ticket2Controller@getCloseTickets']);
//in progress ticket of department
Route::get('/get-under-process-tickets/{id}', ['as' => 'get.dept.inprocess', 'uses' => 'Agent\helpdesk\Ticket2Controller@getInProcessTickets']);
// route for graphical reporting
Route::get('report', ['as' => 'report.index', 'uses' => 'Agent\helpdesk\ReportController@index']); /* To show dashboard pages */
// default route to get the data for the first time
Route::get('help-topic-report', 'Agent\helpdesk\ReportController@chartdataHelptopic');
// route to get the data on change
Route::post('help-topic-report/{date1}/{date2}/{id}', ['as' => 'report.helptopic', 'uses' => 'Agent\helpdesk\ReportController@chartdataHelptopic']); /* To show dashboard pages */
Route::post('help-topic-pdf', ['as' => 'help.topic.pdf', 'uses' => 'Agent\helpdesk\ReportController@helptopicPdf']);
// Route to get details of agents
Route::post('get-agents', ['as' => 'get-agents', 'uses' => 'Agent\helpdesk\UserController@getAgentDetails']);
/*
* Label
*/
Route::get('labels-ticket', ['as'=>'labels.ticket', 'uses'=>'Admin\helpdesk\Label\LabelController@attachTicket']);
Route::get('json-labels', ['as'=>'labels.json', 'uses'=>'Admin\helpdesk\Label\LabelController@getLabel']);
Route::get('filter', ['as'=>'filter', 'uses'=>'Agent\helpdesk\Filter\FilterController@getFilter']);
/*
* Tags
*/
Route::get('add-tag', ['as'=>'tag.add', 'uses'=>'Agent\helpdesk\Filter\TagController@addToFilter']);
Route::get('get-tag', ['as'=>'tag.get', 'uses'=>'Agent\helpdesk\Filter\TagController@getTag']);
});
/*
* Followup tickets
*/
Route::get('/ticket/followup', ['as' => 'followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@followupTicketList']); // Get Closed Ticket /
Route::get('/ticket/get-followup', ['as' => 'get.followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@getFollowup']); // Get tickets in datatable /
Route::get('/ticket/close/get-approval/{id}', ['as' => 'get.close.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getCloseapproval']); // Get tickets in datatable /
/*
|------------------------------------------------------------------
|Guest Routes
|--------------------------------------------------------------------
| Here defining Guest User's routes
|
|
*/
// seasrch
// Route::POST('tickets/search/', function () {
// $keyword = Illuminate\Support\Str::lower(Input::get('auto'));
// $models = App\Model\Ticket\Tickets::where('ticket_number', '=', $keyword)->orderby('ticket_number')->take(10)->skip(0)->get();
// $count = count($models);
// return Illuminate\Support\Facades\Redirect::back()->with('contents', $models)->with('counts', $count);
// });
Route::any('getdata', function () {
$term = Illuminate\Support\Str::lower(Input::get('term'));
$data = Illuminate\Support\Facades\DB::table('tickets')->distinct()->select('ticket_number')->where('ticket_number', 'LIKE', $term.'%')->groupBy('ticket_number')->take(10)->get();
foreach ($data as $v) {
return [
'value' => $v->ticket_number,
];
}
});
Route::post('postform/{id}', 'Client\helpdesk\FormController@postForm'); /* post the AJAX form for create a ticket by guest user */
Route::post('postedform', ['as'=>'client.form.post', 'uses'=>'Client\helpdesk\FormController@postedForm']); /* post the form to store the value */
//Route::get('check', 'CheckController@getcheck'); //testing checkbox auto-populate
//Route::post('postcheck/{id}', 'CheckController@postcheck');
Route::get('get-helptopic-form', 'Client\helpdesk\FormController@getCustomForm');
Route::get('home', ['as' => 'home', 'uses' => 'Client\helpdesk\WelcomepageController@index']); //guest layout
Route::get('/', ['as' => '/', 'uses' => 'Client\helpdesk\WelcomepageController@index']);
Route::get('create-ticket', ['as' => 'form', 'uses' => 'Client\helpdesk\FormController@getForm']); //getform
Route::get('mytickets/{id}', ['as' => 'ticketinfo', 'uses' => 'Client\helpdesk\GuestController@singleThread']); //detail ticket information
Route::post('checkmyticket', 'Client\helpdesk\UnAuthController@PostCheckTicket'); //ticket ckeck
Route::get('check_ticket/{id}', ['as' => 'check_ticket', 'uses' => 'Client\helpdesk\GuestController@get_ticket_email']); //detail ticket information
// show ticket via have a ticket
Route::get('show-ticket/{id}/{code}', ['as' => 'show.ticket', 'uses' => 'Client\helpdesk\UnAuthController@showTicketCode']); //detail ticket information
//testing ckeditor
//===================================================================================
Route::group(['middleware' => 'role.user', 'middleware' => 'auth'], function () {
Route::get('client-profile', ['as' => 'client.profile', 'uses' => 'Client\helpdesk\GuestController@getProfile']); /* User profile get */
Route::get('mytickets', ['as' => 'ticket2', 'uses' => 'Client\helpdesk\GuestController@getMyticket']);
Route::get('myticket/{id}', ['as' => 'ticket', 'uses' => 'Client\helpdesk\GuestController@thread']); /* Get my tickets */
Route::patch('client-profile-edit', 'Client\helpdesk\GuestController@postProfile'); /* User Profile Post */
Route::patch('client-profile-password', 'Client\helpdesk\GuestController@postProfilePassword'); /* Profile Password Post */
Route::post('post/reply/{id}', ['as' => 'client.reply', 'uses' => 'Client\helpdesk\ClientTicketController@reply']);
Route::post('verify-client-number', ['as' => 'client-verify-number', 'uses' => 'Client\helpdesk\GuestController@resendOTP']);
Route::post('verify-client-number2', ['as' => 'post-client-verify-number', 'uses' => 'Client\helpdesk\GuestController@verifyOTP']);
});
//====================================================================================
Route::get('checkticket', 'Client\helpdesk\ClientTicketController@getCheckTicket'); /* Check your Ticket */
Route::get('myticket', ['as' => 'ticket', 'uses' => 'Client\helpdesk\GuestController@getMyticket']); /* Get my tickets */
Route::get('myticket/{id}', ['as' => 'ticket', 'uses' => 'Client\helpdesk\GuestController@thread']); /* Get my tickets */
Route::post('postcheck', 'Client\helpdesk\GuestController@PostCheckTicket'); /* post Check Ticket */
Route::get('postcheck', 'Client\helpdesk\GuestController@PostCheckTicket');
Route::post('post-ticket-reply/{id}', 'Client\helpdesk\FormController@post_ticket_reply');
/*
|============================================================
| Installer Routes
|============================================================
| These routes are for installer
|
*/
Route::get('/serial', ['as' => 'serialkey', 'uses' => 'Installer\helpdesk\InstallController@serialkey']);
Route::post('/post-serial', ['as' => 'post.serialkey', 'uses' => 'Installer\helpdesk\InstallController@postSerialKeyToFaveo']);
Route::post('/CheckSerial', ['as' => 'CheckSerial', 'uses' => 'Installer\helpdesk\InstallController@PostSerialKey']);
Route::get('/JavaScript-disabled', ['as' => 'js-disabled', 'uses' => 'Installer\helpdesk\InstallController@jsDisabled']);
Route::get('/step1', ['as' => 'licence', 'uses' => 'Installer\helpdesk\InstallController@licence']);
Route::post('/step1post', ['as' => 'postlicence', 'uses' => 'Installer\helpdesk\InstallController@licencecheck']);
Route::get('/step2', ['as' => 'prerequisites', 'uses' => 'Installer\helpdesk\InstallController@prerequisites']);
Route::post('/step2post', ['as' => 'postprerequisites', 'uses' => 'Installer\helpdesk\InstallController@prerequisitescheck']);
// Route::get('/step3', ['as' => 'localization', 'uses' => 'Installer\helpdesk\InstallController@localization']);
// Route::post('/step3post', ['as' => 'postlocalization', 'uses' => 'Installer\helpdesk\InstallController@localizationcheck']);
Route::get('/step3', ['as' => 'configuration', 'uses' => 'Installer\helpdesk\InstallController@configuration']);
Route::post('/step4post', ['as' => 'postconfiguration', 'uses' => 'Installer\helpdesk\InstallController@configurationcheck']);
Route::get('/step4', ['as' => 'database', 'uses' => 'Installer\helpdesk\InstallController@database']);
Route::get('/step5', ['as' => 'account', 'uses' => 'Installer\helpdesk\InstallController@account']);
Route::post('/step6post', ['as' => 'postaccount', 'uses' => 'Installer\helpdesk\InstallController@accountcheck']);
Route::get('/final', ['as' => 'final', 'uses' => 'Installer\helpdesk\InstallController@finalize']);
Route::post('/finalpost', ['as' => 'postfinal', 'uses' => 'Installer\helpdesk\InstallController@finalcheck']);
Route::post('/postconnection', ['as' => 'postconnection', 'uses' => 'Installer\helpdesk\InstallController@postconnection']);
Route::get('/change-file-permission', ['as' => 'change-permission', 'uses' => 'Installer\helpdesk\InstallController@changeFilePermission']);
/*
|=============================================================
| Cron Job links
|=============================================================
| These links are for cron job execution
|
*/
Route::get('readmails', ['as' => 'readmails', 'uses' => 'Agent\helpdesk\MailController@readmails']);
Route::get('notification', ['as' => 'notification', 'uses' => 'Agent\helpdesk\NotificationController@send_notification']);
Route::get('auto-close-tickets', ['as' => 'auto.close', 'uses' => 'Client\helpdesk\UnAuthController@autoCloseTickets']);
/*
|=============================================================
| View all the Routes
|=============================================================
*/
Route::get('/aaa', function () {
$routeCollection = Route::getRoutes();
echo "<table style='width:100%'>";
echo '<tr>';
echo "<td width='10%'><h4>HTTP Method</h4></td>";
echo "<td width='10%'><h4>Route</h4></td>";
echo "<td width='10%'><h4>Url</h4></td>";
echo "<td width='80%'><h4>Corresponding Action</h4></td>";
echo '</tr>';
foreach ($routeCollection as $value) {
echo '<tr>';
echo '<td>'.$value->getMethods()[0].'</td>';
echo '<td>'.$value->getName().'</td>';
echo '<td>'.$value->getPath().'</td>';
echo '<td>'.$value->getActionName().'</td>';
echo '</tr>';
}
echo '</table>';
});
/*
|=============================================================
| Error Routes
|=============================================================
*/
Route::get('500', ['as' => 'error500', function () {
return view('errors.500');
}]);
Route::get('404', ['as' => 'error404', function () {
return view('errors.404');
}]);
Route::get('error-in-database-connection', ['as' => 'errordb', function () {
return view('errors.db');
}]);
Route::get('unauthorized', ['as' => 'unauth', function () {
return view('errors.unauth');
}]);
Route::get('board-offline', ['as' => 'board.offline', function () {
return view('errors.offline');
}]);
/*
|=============================================================
| Test mail Routes
|=============================================================
*/
// Route::get('testmail', function () {
// $e = 'hello';
// Config::set('mail.host', 'smtp.gmail.com');
// \Mail::send('errors.report', ['e' => $e], function ($message) {
// $message->to('sujitprasad4567@gmail.com', 'sujit prasad')->subject('Error');
// });
// });
/* For the crud of catogory */
Route::resource('category', 'Agent\kb\CategoryController');
Route::get('category/delete/{id}', 'Agent\kb\CategoryController@destroy');
/* For the crud of article */
Route::resource('article', 'Agent\kb\ArticleController');
Route::get('article/delete/{id}', 'Agent\kb\ArticleController@destroy');
/* get settings */
Route::get('kb/settings', ['as' => 'settings', 'uses' => 'Agent\kb\SettingsController@settings']);
/* post settings */
Route::patch('postsettings/{id}', 'Agent\kb\SettingsController@postSettings');
//Route for administrater to access the comment
Route::get('comment', ['as' => 'comment', 'uses' => 'Agent\kb\SettingsController@comment']);
/* Route to define the comment should Published */
Route::get('published/{id}', ['as' => 'published', 'uses' => 'Agent\kb\SettingsController@publish']);
/* Route for deleting comments */
Route::delete('deleted/{id}', ['as' => 'deleted', 'uses' => 'Agent\kb\SettingsController@delete']);
/* Route for Profile */
// $router->get('profile', ['as' => 'profile', 'uses' => 'Agent\kb\SettingsController@getProfile']);
/* Profile Update */
// $router->patch('post-profile', ['as' => 'post-profile', 'uses' =>'Agent\kb\SettingsController@postProfile'] );
/* Profile password Update */
// $router->patch('post-profile-password/{id}',['as' => 'post-profile-password', 'uses' => 'Agent\kb\SettingsController@postProfilepassword']);
/* delete Logo */
Route::get('delete-logo/{id}', ['as' => 'delete-logo', 'uses' => 'Agent\kb\SettingsController@deleteLogo']);
/* delete Background */
Route::get('delete-background/{id}', ['as' => 'delete-background', 'uses' => 'Agent\kb\SettingsController@deleteBackground']);
Route::resource('page', 'Agent\kb\PageController');
Route::get('get-pages', ['as' => 'api.page', 'uses' => 'Agent\kb\PageController@getData']);
Route::get('page/delete/{id}', ['as' => 'pagedelete', 'uses' => 'Agent\kb\PageController@destroy']);
Route::get('comment/delete/{id}', ['as' => 'commentdelete', 'uses' => 'Agent\kb\SettingsController@delete']);
Route::get('get-articles', ['as' => 'api.article', 'uses' => 'Agent\kb\ArticleController@getData']);
Route::get('get-categorys', ['as' => 'api.category', 'uses' => 'Agent\kb\CategoryController@getData']);
Route::get('get-comment', ['as' => 'api.comment', 'uses' => 'Agent\kb\SettingsController@getData']);
Route::post('image', 'Agent\kb\SettingsController@image');
Route::get('direct', function () {
return view('direct');
});
// Route::get('/',['as'=>'home' , 'uses'=> 'client\kb\UserController@home'] );
/* post the comment from show page */
Route::post('postcomment/{slug}', ['as' => 'postcomment', 'uses' => 'Client\kb\UserController@postComment']);
/* get the article list */
Route::get('article-list', ['as' => 'article-list', 'uses' => 'Client\kb\UserController@getArticle']);
// /* get search values */
Route::get('search', ['as' => 'search', 'uses' => 'Client\kb\UserController@search']);
/* get the selected article */
Route::get('show/{slug}', ['as' => 'show', 'uses' => 'Client\kb\UserController@show']);
Route::get('category-list', ['as' => 'category-list', 'uses' => 'Client\kb\UserController@getCategoryList']);
/* get the categories with article */
Route::get('category-list/{id}', ['as' => 'categorylist', 'uses' => 'Client\kb\UserController@getCategory']);
Route::post('show/rating/{id}', ['as' => 'show.rating', 'uses' => 'Client\helpdesk\UnAuthController@rating']); /* Get overall Ratings */
Route::post('show/rating2/{id}', ['as' => 'show.rating2', 'uses' => 'Client\helpdesk\UnAuthController@ratingReply']); /* Get reply Ratings */
Route::get('show/change-status/{status}/{id}', ['as' => 'show.change.status', 'uses' => 'Client\helpdesk\UnAuthController@changeStatus']); /* Get reply Ratings */
/* get the home page */
Route::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'] );
/* get the cantact page to user */
Route::get('contact', ['as' => 'contact', 'uses' => 'Client\kb\UserController@contact']);
/* post the cantact page to controller */
Route::post('post-contact', ['as' => 'post-contact', 'uses' => 'Client\kb\UserController@postContact']);
//to get the value for page content
Route::get('pages/{name}', ['as' => 'pages', 'uses' => 'Client\kb\UserController@getPage']);
//profile
// $router->get('client-profile',['as' => 'client-profile', 'uses' => 'Client\kb\UserController@clientProfile']);
// Route::patch('client-profile-edit',['as' => 'client-profile-edit', 'uses' => 'Client\kb\UserController@postClientProfile']);
// Route::patch('client-profile-password/{id}',['as' => 'client-profile-password', 'uses' => 'Client\kb\UserController@postClientProfilePassword']);
Route::get('/inbox/data', ['as' => 'api.inbox', 'uses' => 'Agent\helpdesk\TicketController@get_inbox']);
// Route::get('/report', 'HomeController@getreport');
// Route::get('/reportdata', 'HomeController@pushdata');
/*
* ================================================================================================
* @version v1
* @access public
* @copyright (c) 2016, Ladybird web solution
* @author Vijay Sebastian<vijay.sebastian@ladybirdweb.com>
* @name Faveo
*/
Route::group(['prefix' => 'api/v1'], function () {
Route::post('authenticate', 'Api\v1\TokenAuthController@authenticate');
Route::get('authenticate/user', 'Api\v1\TokenAuthController@getAuthenticatedUser');
Route::get('/database-config', ['as' => 'database-config', 'uses' => 'Api\v1\InstallerApiController@config_database']);
Route::get('/system-config', ['as' => 'database-config', 'uses' => 'Api\v1\InstallerApiController@config_system']);
/*
* Helpdesk
*/
Route::group(['prefix' => 'helpdesk'], function () {
Route::post('create', 'Api\v1\ApiController@createTicket');
Route::post('reply', 'Api\v1\ApiController@ticketReply');
Route::post('edit', 'Api\v1\ApiController@editTicket');
Route::post('delete', 'Api\v1\ApiController@deleteTicket');
Route::post('assign', 'Api\v1\ApiController@assignTicket');
Route::get('open', 'Api\v1\ApiController@openedTickets');
Route::get('unassigned', 'Api\v1\ApiController@unassignedTickets');
Route::get('closed', 'Api\v1\ApiController@closeTickets');
Route::get('agents', 'Api\v1\ApiController@getAgents');
Route::get('teams', 'Api\v1\ApiController@getTeams');
Route::get('customers', 'Api\v1\ApiController@getCustomers');
Route::get('customer', 'Api\v1\ApiController@getCustomer');
Route::get('ticket-search', 'Api\v1\ApiController@searchTicket');
Route::get('ticket-thread', 'Api\v1\ApiController@ticketThreads');
Route::get('url', 'Api\v1\ApiExceptAuthController@checkUrl');
Route::get('check-url', 'Api\v1\ApiExceptAuthController@urlResult');
Route::get('api_key', 'Api\v1\ApiController@generateApiKey');
Route::get('help-topic', 'Api\v1\ApiController@getHelpTopic');
Route::get('sla-plan', 'Api\v1\ApiController@getSlaPlan');
Route::get('priority', 'Api\v1\ApiController@getPriority');
Route::get('department', 'Api\v1\ApiController@getDepartment');
Route::get('tickets', 'Api\v1\ApiController@getTickets');
Route::get('ticket', 'Api\v1\ApiController@getTicketById');
Route::get('inbox', 'Api\v1\ApiController@inbox');
Route::get('trash', 'Api\v1\ApiController@getTrash');
Route::get('my-tickets-agent', 'Api\v1\ApiController@getMyTicketsAgent');
Route::post('internal-note', 'Api\v1\ApiController@internalNote');
/*
* Newly added
*/
Route::get('customers-custom', 'Api\v1\ApiController@getCustomersWith');
Route::get('collaborator/search', 'Api\v1\ApiController@collaboratorSearch');
Route::post('collaborator/create', 'Api\v1\ApiController@addCollaboratorForTicket');
Route::post('collaborator/remove', 'Api\v1\ApiController@deleteCollaborator');
Route::post('collaborator/get-ticket', 'Api\v1\ApiController@getCollaboratorForTicket');
Route::get('my-tickets-user', 'Api\v1\ApiController@getMyTicketsUser');
Route::get('dependency', 'Api\v1\ApiController@dependency');
Route::post('register', 'Api\v1\ApiController@createUser');
});
/*
* FCM token response
*/
Route::post('fcmtoken', ['as' => 'fcmtoken', 'uses' => 'Common\PushNotificationController@fcmToken']);
});
/*
* Update module
*/
Route::get('database-update', ['as' => 'database.update', 'uses' => 'Update\UpgradeController@databaseUpdate']);
Route::get('database-upgrade', ['as' => 'database.upgrade', 'uses' => 'Update\UpgradeController@databaseUpgrade']);
Route::get('file-update', ['as' => 'file.update', 'uses' => 'Update\UpgradeController@fileUpdate']);
Route::get('file-upgrade', ['as' => 'file.upgrade', 'uses' => 'Update\UpgradeController@fileUpgrading']);
/*
* Webhook
*/
\Event::listen('ticket.details', function ($details) {
$api_control = new \App\Http\Controllers\Common\ApiSettings();
$api_control->ticketDetailEvent($details);
});
Route::get('test', ['as' => 'test', 'uses' => 'Common\PushNotificationController@response']);
Route::get('mail/config/service', ['as' => 'mail.config.service', 'uses' => 'Job\MailController@serviceForm']);
/*
* Queue
*/
Route::get('queue', ['as' => 'queue', 'uses' => 'Job\QueueController@index']);
Route::get('form/queue', ['as' => 'queue.form', 'uses' => 'Job\QueueController@getForm']);
Route::get('queue/{id}', ['as' => 'queue.edit', 'uses' => 'Job\QueueController@edit']);
Route::post('queue/{id}', ['as' => 'queue.update', 'uses' => 'Job\QueueController@update']);
Route::get('queue/{id}/activate', ['as' => 'queue.activate', 'uses' => 'Job\QueueController@activate']);
Route::get('get-ticket-number', ['as' => 'get.ticket.number', 'uses' => 'Admin\helpdesk\SettingsController@getTicketNumber']);
Route::get('genereate-pdf/{threadid}', ['as' => 'thread.pdf', 'uses' => 'Agent\helpdesk\TicketController@pdfThread']);
/*
* Url Settings
*/
Route::get('url/settings', ['as' => 'url.settings', 'uses' => 'Admin\helpdesk\UrlSettingController@settings']);
Route::patch('url/settings', ['as' => 'url.settings.post', 'uses' => 'Admin\helpdesk\UrlSettingController@postSettings']);
/*
* Social media settings
*/
Route::get('social/media', ['as'=>'social', 'uses'=>'Admin\helpdesk\SocialMedia\SocialMediaController@index']);
Route::get('social/media/{provider}', ['as'=>'social.media', 'uses'=>'Admin\helpdesk\SocialMedia\SocialMediaController@settings']);
Route::post('social/media/{provider}', ['as'=>'social.media.post', 'uses'=>'Admin\helpdesk\SocialMedia\SocialMediaController@postSettings']);
/*
* Ticket_Priority Settings
*/
Route::get('ticket/priority', ['as' => 'priority.index', 'uses' => 'Admin\helpdesk\PriorityController@priorityIndex']);
Route::post('user/ticket/priority', ['as' => 'user.priority.index', 'uses' => 'Admin\helpdesk\PriorityController@userPriorityIndex']);
Route::get('get_index', ['as' => 'priority.index1', 'uses' => 'Admin\helpdesk\PriorityController@priorityIndex1']);
Route::get('ticket/priority/create', ['as' => 'priority.create', 'uses' => 'Admin\helpdesk\PriorityController@priorityCreate']);
Route::post('ticket/priority/create1', ['as' => 'priority.create1', 'uses' => 'Admin\helpdesk\PriorityController@priorityCreate1']);
Route::post('ticket/priority/edit1', ['as' => 'priority.edit1', 'uses' => 'Admin\helpdesk\PriorityController@priorityEdit1']);
Route::get('ticket/priority/{ticket_priority}/edit', ['as' => 'priority.edit', 'uses' => 'Admin\helpdesk\PriorityController@priorityEdit']);
Route::get('ticket/priority/{ticket_priority}/destroy', ['as' => 'priority.destroy', 'uses' => 'Admin\helpdesk\PriorityController@destroy']);
// user---arindam
Route::post('rolechangeadmin/{id}', ['as' => 'user.post.rolechangeadmin', 'uses' =>'Agent\helpdesk\UserController@changeRoleAdmin']);
Route::post('rolechangeagent/{id}', ['as' => 'user.post.rolechangeagent', 'uses' =>'Agent\helpdesk\UserController@changeRoleAgent']);
Route::post('rolechangeuser/{id}', ['as' => 'user.post.rolechangeuser', 'uses' =>'Agent\helpdesk\UserController@changeRoleUser']);
Route::get('password', ['as' => 'user.changepassword', 'uses' =>'Agent\helpdesk\UserController@randomPassword']);
Route::post('changepassword/{id}', ['as' => 'user.post.changepassword', 'uses' =>'Agent\helpdesk\UserController@randomPostPassword']);
Route::post('delete/{id}', ['as' => 'user.post.delete', 'uses' =>'Agent\helpdesk\UserController@deleteAgent']);
// deleted user list
Route::get('deleted/user', ['as' => 'user.deleted', 'uses' => 'Agent\helpdesk\UserController@deletedUser']);
Route::post('restore/{id}', ['as' => 'user.restore', 'uses' => 'Agent\helpdesk\UserController@restoreUser']);
//due today ticket
Route::get('duetoday', ['as' => 'ticket.duetoday', 'uses' =>'Agent\helpdesk\TicketController@dueTodayTicketlist']);
// Route::post('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']);
Route::get('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']); /* Get Open Ticket */
// Breadcrumbs::register('open.ticket', function ($breadcrumbs) {
// $breadcrumbs->parent('dashboard');
// $breadcrumbs->push(Lang::get('lang.tickets') . '&nbsp; > &nbsp;' . Lang::get('lang.open'), route('open.ticket'));
// });
});

36
tests/DuskTestCase.php Normal file
View File

@@ -0,0 +1,36 @@
<?php
namespace Tests;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Laravel\Dusk\TestCase as BaseTestCase;
abstract class DuskTestCase extends BaseTestCase
{
use CreatesApplication;
/**
* Prepare for Dusk test execution.
*
* @beforeClass
*
* @return void
*/
public static function prepare()
{
static::startChromeDriver();
}
/**
* Create the RemoteWebDriver instance.
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver()
{
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()
);
}
}

2
vendor/autoload.php vendored
View File

@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit1bacc9bd2a82216bf11bc15e6aee6c79::getLoader();
return ComposerAutoloaderInit598add4b9b35c76d3599603201ccdd6d::getLoader();

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "Ec2",
"description": "New EC2 I3 instance type"
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "ElasticsearchService",
"description": "Added three new API calls to existing Amazon Elasticsearch service to expose Amazon Elasticsearch imposed limits to customers."
}
]

22
vendor/aws/aws-sdk-php/.changes/3.22.9 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "ElasticBeanstalk",
"description": "Elastic Beanstalk adds support for creating and managing custom platform."
},
{
"type": "api-change",
"category": "CloudDirectory",
"description": "ListObjectAttributes documentation updated based on forum feedback"
},
{
"type": "api-change",
"category": "Route53",
"description": "Added support for operations CreateVPCAssociationAuthorization and DeleteVPCAssociationAuthorization to throw a ConcurrentModification error when a conflicting modification occurs in parallel to the authorizations in place for a given hosted zone."
},
{
"type": "api-change",
"category": "GameLift",
"description": "Allow developers to configure global queues for creating GameSessions. Allow PlayerData on PlayerSessions to store player-specific data."
}
]

27
vendor/aws/aws-sdk-php/.changes/3.23.0 vendored Normal file
View File

@@ -0,0 +1,27 @@
[
{
"type": "feature",
"category": "Organizations",
"description": "AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources."
},
{
"type": "api-change",
"category": "DynamoDB",
"description": "Time to Live (TTL) is a feature that allows you to define when items in a table expire and can be purged from the database, so that you don't have to track expired data and delete it manually. With TTL enabled on a DynamoDB table, you can set a timestamp for deletion on a per-item basis, allowing you to limit storage usage to only those records that are relevant."
},
{
"type": "api-change",
"category": "IAM",
"description": "Added support for AWS Organizations service control policies (SCPs) to SimulatePrincipalPolicy operation. If there are SCPs associated with the simulated user's account, their effect on the result is captured in the OrganizationDecisionDetail element in the EvaluationResult."
},
{
"type": "feature",
"category": "MechanicalTurkRequesterService",
"description": "Amazon Mechanical Turk is a web service that provides an on-demand, scalable, human workforce to complete jobs that humans can do better than computers, for example, recognizing objects in photos."
},
{
"type": "api-change",
"category": "DynamoDBStreams",
"description": "Added support for TTL on a DynamoDB tables"
}
]

12
vendor/aws/aws-sdk-php/.changes/3.23.2 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "OpsWorksCM",
"description": "OpsWorks for Chef Automate has added a new field \"AssociatePublicIpAddress\" to the CreateServer request, \"CloudFormationStackArn\" to the Server model and \"TERMINATED\" server state."
},
{
"type": "api-change",
"category": "Budgets",
"description": "When creating or editing a budget via the AWS Budgets API you can define notifications that are sent to subscribers when the actual or forecasted value for cost or usage exceeds the notificationThreshold associated with the budget notification object. Starting today, the maximum allowed value for the notificationThreshold was raised from 100 to 300. This change was made to give you more flexibility when setting budget notifications."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "RDS",
"description": "Add support to using encrypted clusters as cross-region replication masters. Update CopyDBClusterSnapshot API to support encrypted cross region copy of Aurora cluster snapshots."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "feature",
"category": "WorkDocs",
"description": "The Administrative SDKs for Amazon WorkDocs provides full administrator level access to WorkDocs site resources, allowing developers to integrate their applications to manage WorkDocs users, content and permissions programmatically"
}
]

12
vendor/aws/aws-sdk-php/.changes/3.24.1 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "APIGateway",
"description": "API Gateway has added support for ACM certificates on custom domain names. Both Amazon-issued certificates and uploaded third-part certificates are supported."
},
{
"type": "api-change",
"category": "CloudDirectory",
"description": "Introduces a new Cloud Directory API that enables you to retrieve all available parent paths for any type of object (a node, leaf node, policy node, and index node) in a hierarchy."
}
]

12
vendor/aws/aws-sdk-php/.changes/3.24.2 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "EMR",
"description": "This release includes support for instance fleets in Amazon EMR."
},
{
"type": "api-change",
"category": "CodeDeploy",
"description": "Add paginators for Codedeploy"
}
]

12
vendor/aws/aws-sdk-php/.changes/3.24.3 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "CloudWatchEvents",
"description": "This update extends Target Data Type for configuring Target behavior during invocation."
},
{
"type": "api-change",
"category": "DeviceFarm",
"description": "Network shaping allows users to simulate network connections and conditions while testing their Android, iOS, and web apps with AWS Device Farm."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "events",
"description": "Update documentation"
}
]

17
vendor/aws/aws-sdk-php/.changes/3.24.5 vendored Normal file
View File

@@ -0,0 +1,17 @@
[
{
"type": "api-change",
"category": "MarketplaceCommerceAnalytics",
"description": "This update adds a new data set, us_sales_and_use_tax_records, which enables AWS Marketplace sellers to programmatically access to their U.S. Sales and Use Tax report data."
},
{
"type": "api-change",
"category": "Pinpoint",
"description": "Added support for segment endpoints by user attributes in addition to endpoint attributes, publishing raw app analytics and campaign events as events streams to Kinesis and Kinesis Firehose"
},
{
"type": "api-change",
"category": "DirectConnect",
"description": "Deprecated DescribeConnectionLoa, DescribeInterconnectLoa, AllocateConnectionOnInterconnect and DescribeConnectionsOnInterconnect operations in favor of DescribeLoa, DescribeLoa, AllocateHostedConnection and DescribeHostedConnections respectively."
}
]

17
vendor/aws/aws-sdk-php/.changes/3.24.6 vendored Normal file
View File

@@ -0,0 +1,17 @@
[
{
"type": "api-change",
"category": "Lambda",
"description": "Adds support for new runtime Node.js v6.10 for AWS Lambda service"
},
{
"type": "api-change",
"category": "ElasticLoadBalancingv2",
"description": "Adding waiters for Elastic Load Balancing V2"
},
{
"type": "api-change",
"category": "ApplicationDiscoveryService",
"description": "Adds export configuration options to the AWS Discovery Service API."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "ApplicationAutoScaling",
"description": "Application AutoScaling is launching support for a new target resource (AppStream 2.0 Fleets) as a scalable target."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "SSM",
"description": "Updated validation rules for SendCommand and RegisterTaskWithMaintenanceWindow APIs"
}
]

12
vendor/aws/aws-sdk-php/.changes/3.24.9 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "Batch",
"description": "Customers can now provide a retryStrategy as part of the RegisterJobDefinition and SubmitJob API calls. The retryStrategy object has a number value for attempts. This is the number of non successful executions before a job is considered FAILED. In addition, the JobDetail object now has an attempts field and shows all execution attempts."
},
{
"type": "api-change",
"category": "EC2",
"description": "Customers can now tag their Amazon EC2 Instances and Amazon EBS Volumes at the time of their creation. You can do this from the EC2 Instance launch wizard or through the RunInstances or CreateVolume APIs. By tagging resources at the time of creation, you can eliminate the need to run custom tagging scripts after resource creation. In addition, you can now set resource-level permissions on the CreateVolume, CreateTags, DeleteTags, and the RunInstances APIs. This allows you to implement stronger security policies by giving you more granular control over which users and groups have access to these APIs. You can also enforce the use of tagging and control what tag keys and values are set on your resources. When you combine tag usage and resource-level IAM policies together, you can ensure your instances and volumes are properly secured upon creation and achieve more accurate cost allocation reporting. These new features are provided at no additional cost. "
}
]

22
vendor/aws/aws-sdk-php/.changes/3.25.0 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "StorageGateway",
"description": "File gateway mode in AWS Storage gateway provides access to objects in S3 as files on a Network File System (NFS) mount point. Once a file share is created, any changes made externally to the S3 bucket will not be reflected by the gateway. Using the cache refresh feature in this update, the customer can trigger an on-demand scan of the keys in their S3 bucket and refresh the file namespace cached on the gateway. It takes as an input the fileShare ARN and refreshes the cache for only that file share. Additionally there is new functionality on file gateway that allows you configure what squash options they would like on their file share, this allows a customer to configure their gateway to not squash root permissions. This can be done by setting options in NfsOptions for CreateNfsFileShare and UpdateNfsFileShare APIs."
},
{
"type": "feature",
"category": "ResourceGroupsTaggingAPI",
"description": "Resource Groups Tagging APIs can help you organize your resources and enable you to simplify resource management, access management, and cost allocation."
},
{
"type": "api-change",
"category": "CloudFormation",
"description": "Adding paginators for ListExports and ListImports"
},
{
"type": "api-change",
"category": "CloudFront",
"description": "Amazon CloudFront now supports user configurable HTTP Read and Keep-Alive Idle Timeouts for your Custom Origin Servers"
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "CloudDirectory",
"description": "ListObjectAttributes now supports filtering by facet."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "LexRuntimeService",
"description": "Adds support to PostContent for speech input"
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "CloudWatch",
"description": "Amazon Web Services announced the immediate availability of two additional alarm configuration rules for Amazon CloudWatch Alarms. The first rule is for configuring missing data treatment. Customers have the options to treat missing data as alarm threshold breached, alarm threshold not breached, maintain alarm state and the current default treatment. The second rule is for alarms based on percentiles metrics that can trigger unnecassarily if the percentile is calculated from a small number of samples. The new rule can treat percentiles with low sample counts as same as missing data. If the first rule is enabled, the same treatment will be applied when an alarm encounters a percentile with low sample counts."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "ElastiCache",
"description": "ElastiCache added support for testing the Elasticache Multi-AZ feature with Automatic Failover."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "enhancement",
"category": "ElasticLoadBalancingv2",
"description": "Adds supports a new condition for host-header conditions to CreateRule and ModifyRule"
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "Redshift",
"description": "This update adds the GetClusterCredentials API which is used to get temporary login credentials to the cluster. AccountWithRestoreAccess now has a new member AccountAlias, this is the identifier of the AWS support account authorized to restore the specified snapshot. This is added to support the feature where the customer can share their snapshot with the Amazon Redshift Support Account without having to manually specify the AWS Redshift Service account ID on the AWS Console\/API."
}
]

22
vendor/aws/aws-sdk-php/.changes/3.25.7 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "APIGateway",
"description": "API Gateway request validators"
},
{
"type": "api-change",
"category": "GameLift",
"description": "Allows developers to utilize an improved workflow when calling our Queues API and introduces a new feature that allows developers to specify a maximum allowable latency per Queue."
},
{
"type": "api-change",
"category": "Batch",
"description": "API Update for AWS Batch: Customer provided AMI for MANAGED Compute Environment "
},
{
"type": "api-change",
"category": "OpsWorks",
"description": "Cloudwatch Logs agent configuration can now be attached to OpsWorks Layers using CreateLayer and UpdateLayer. OpsWorks will then automatically install and manage the CloudWatch Logs agent on the instances part of the OpsWorks Layer."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "Lambda",
"description": "You can use tags to group and filter your Lambda functions, making it easier to analyze them for billing allocation purposes. For more information, see Tagging Lambda Functions. You can now write or upgrade your Lambda functions using Python version 3.6. For more information, see Programming Model for Authoring Lambda Functions in Python. Note: Features will be rolled out in the US regions on 4\/19."
}
]

42
vendor/aws/aws-sdk-php/.changes/3.26.0 vendored Normal file
View File

@@ -0,0 +1,42 @@
[
{
"type": "api-change",
"category": "IAM",
"description": "This changes introduces a new IAM role type, Service Linked Role, which works like a normal role but must be managed via services' control. "
},
{
"type": "feature",
"category": "LexModelBuildingService",
"description": "Amazon Lex is a service for building conversational interfaces into any application using voice and text."
},
{
"type": "feature",
"category": "CodeStar",
"description": "AWS CodeStar is a cloud-based service for creating, managing, and working with software development projects on AWS. An AWS CodeStar project creates and integrates AWS services for your project development toolchain. AWS CodeStar also manages the permissions required for project users."
},
{
"type": "api-change",
"category": "EC2",
"description": "Adds support for creating an Amazon FPGA Image (AFI) from a specified design checkpoint (DCP)."
},
{
"type": "api-change",
"category": "Rekognition",
"description": "Given an image, the API detects explicit or suggestive adult content in the image and returns a list of corresponding labels with confidence scores, as well as a taxonomy (parent-child relation) for each label."
},
{
"type": "api-change",
"category": "Lambda",
"description": "Lambda integration with CloudDebugger service to enable customers to enable tracing for the Lambda functions and send trace information to the CloudDebugger service."
},
{
"type": "api-change",
"category": "APIGateway",
"description": "Add support for \"embed\" property."
},
{
"type": "api-change",
"category": "Polly",
"description": "API Update for Amazon Polly: Add support for speech marks"
}
]

32
vendor/aws/aws-sdk-php/.changes/3.26.1 vendored Normal file
View File

@@ -0,0 +1,32 @@
[
{
"type": "enhancement",
"category": "Route53",
"description": "Release notes: SDK documentation now includes examples for ChangeResourceRecordSets for all types of resource record set, such as weighted, alias, and failover."
},
{
"type": "enhancement",
"category": "KMS",
"description": "Doc-only update for Key Management Service (KMS): Update docs for GrantConstraints and GenerateRandom"
},
{
"type": "api-change",
"category": "ElasticLoadBalancingv2",
"description": "Adding LoadBalancersDeleted waiter for Elasticloadbalancingv2"
},
{
"type": "enhancement",
"category": "Route53Domains",
"description": "Adding examples and other documentation updates."
},
{
"type": "enhancement",
"category": "DirectConnect",
"description": "Documentation updates for AWS Direct Connect."
},
{
"type": "api-change",
"category": "DeviceFarm",
"description": "API Update for AWS Device Farm: Support for Deals and Promotions "
}
]

12
vendor/aws/aws-sdk-php/.changes/3.26.2 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "Kinesis",
"description": "Adds a new waiter, StreamNotExists, to Kinesis "
},
{
"type": "api-change",
"category": "AppStream",
"description": "The new feature named \"Default Internet Access\" will enable Internet access from AppStream 2.0 instances - image builders and fleet instances. Admins will check a flag either through AWS management console for AppStream 2.0 or through API while creating an image builder or while creating\/updating a fleet."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "RDS",
"description": "With Amazon Relational Database Service (Amazon RDS) running MySQL or Amazon Aurora, you can now authenticate to your DB instance using IAM database authentication."
}
]

27
vendor/aws/aws-sdk-php/.changes/3.26.4 vendored Normal file
View File

@@ -0,0 +1,27 @@
[
{
"type": "api-change",
"category": "Rekognition",
"description": "Fix for missing file type check"
},
{
"type": "api-change",
"category": "CloudFormation",
"description": "API update for CloudFormation: New optional parameter ClientRequestToken which can be used as an idempotency token to safely retry certain operations as well as tagging StackEvents."
},
{
"type": "api-change",
"category": "Snowball",
"description": "The Snowball API has a new exception that can be thrown for list operation requests."
},
{
"type": "api-change",
"category": "SQS",
"description": "Adding server-side encryption (SSE) support to SQS by integrating with AWS KMS; adding new queue attributes to SQS CreateQueue, SetQueueAttributes and GetQueueAttributes APIs to support SSE."
},
{
"type": "api-change",
"category": "RDS",
"description": "The DescribeDBClusterSnapshots API now returns a SourceDBClusterSnapshotArn field which identifies the source DB cluster snapshot of a copied snapshot."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "CloudFormation",
"description": "Adding back the removed waiters and paginators."
}
]

22
vendor/aws/aws-sdk-php/.changes/3.27.0 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "S3",
"description": "Fixed possible security issue in `Transfer`s download `transfer` operation where files could be downloaded to a directory outside the destination directory if the key contained relative paths. Ignoring files to continue with your transfer can be done through passing an iterator of files to download to `Transfer`s parameter: `$source`. These can be generated on `s3:\/\/` paths if you have registered the SDK's `StreamWrapper` via `\\Aws\\recursive_dir_iterator`."
},
{
"type": "api-change",
"category": "Lambda",
"description": "Support for UpdateFunctionCode DryRun option"
},
{
"type": "feature",
"category": "MarketplaceEntitlementService",
"description": "AWS Marketplace Entitlement Service enables AWS Marketplace sellers to determine the capacity purchased by their customers."
},
{
"type": "api-change",
"category": "ECS",
"description": "Exposes container instance registration time in ECS:DescribeContainerInstances."
}
]

12
vendor/aws/aws-sdk-php/.changes/3.27.1 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "enhancement",
"category": "CodeStar",
"description": "Updated documentation for AWS CodeStar."
},
{
"type": "enhancement",
"category": "WorkSpaces",
"description": "Doc-only Update for WorkSpaces"
}
]

22
vendor/aws/aws-sdk-php/.changes/3.27.2 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "Organizations",
"description": "AWS Organizations APIs that return an Account object now include the email address associated with the account\u2019s root user."
},
{
"type": "api-change",
"category": "ElasticLoadBalancing",
"description": "Add a new API to allow customers to describe their account limits, such as load balancer limit, target group limit etc."
},
{
"type": "api-change",
"category": "ElasticLoadBalancingv2",
"description": "Add a new API to allow customers to describe their account limits, such as load balancer limit, target group limit etc."
},
{
"type": "api-change",
"category": "LexModelBuildingService",
"description": "Releasing new DeleteBotVersion, DeleteIntentVersion and DeleteSlotTypeVersion APIs."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "SSM",
"description": "UpdateAssociation API now supports updating document name and targets of an association. GetAutomationExecution API can return FailureDetails as an optional field to the StepExecution Object, which contains failure type, failure stage as well as other failure related information for a failed step."
}
]

22
vendor/aws/aws-sdk-php/.changes/3.27.4 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "api-change",
"category": "GameLift",
"description": "Allow developers to specify how metrics are grouped in CloudWatch for their GameLift fleets. Developers can also specify how many concurrent game sessions activate on a per-instance basis."
},
{
"type": "api-change",
"category": "CodeDeploy",
"description": "This release introduces the previousRevision field in the responses to the GetDeployment and BatchGetDeployments actions. previousRevision provides information about the application revision that was deployed to the deployment group before the most recent successful deployment. Also, the fileExistsBehavior parameter has been added for CreateDeployment action requests. In the past, if the AWS CodeDeploy agent detected files in a target location that weren't part of the application revision from the most recent successful deployment, it would fail the current deployment by default. This new parameter provides options for how the agent handles these files: fail the deployment, retain the content, or overwrite the content."
},
{
"type": "api-change",
"category": "Inspector",
"description": "Adds ability to produce an assessment report that includes detailed and comprehensive results of a specified assessment run."
},
{
"type": "enhancement",
"category": "KMS",
"description": "Update documentation for KMS."
}
]

22
vendor/aws/aws-sdk-php/.changes/3.27.5 vendored Normal file
View File

@@ -0,0 +1,22 @@
[
{
"type": "enhancement",
"category": "CloudWatchLogs",
"description": "Various CloudWatch Logs documentation updates."
},
{
"type": "enhancement",
"category": "CloudWatchEvents",
"description": "Various CloudWatch Events documentation updates."
},
{
"type": "api-change",
"category": "Polly",
"description": "Amazon Polly adds new German voice \"Vicki\""
},
{
"type": "enhancement",
"category": "AutoScaling",
"description": "Various Auto Scaling documentation updates"
}
]

12
vendor/aws/aws-sdk-php/.changes/3.28.0 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "Lightsail",
"description": "This release adds new APIs that make it easier to set network port configurations on Lightsail instances. Developers can now make a single request to both open and close public ports on an instance using the PutInstancePublicPorts operation."
},
{
"type": "feature",
"category": "Athena",
"description": "This release adds support for Amazon Athena. Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run."
}
]

12
vendor/aws/aws-sdk-php/.changes/3.28.1 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "SQS",
"description": "MD5 Validation of `MessageAttributes` is now being performed on `ReceiveMessage` calls. SQS uses a custom encoding for generating the hash input, [details on that scheme are available here.](http:\/\/docs.aws.amazon.com\/AWSSimpleQueueService\/latest\/SQSDeveloperGuide\/sqs-message-attributes.html#sqs-attrib-md5)"
},
{
"type": "api-change",
"category": "ResourceGroupsTaggingAPI",
"description": "You can now specify the number of resources returned per page in GetResources operation, as an optional parameter, to easily manage the list of resources returned by your queries."
}
]

17
vendor/aws/aws-sdk-php/.changes/3.28.10 vendored Normal file
View File

@@ -0,0 +1,17 @@
[
{
"type": "api-change",
"category": "IoT",
"description": "Update client side validation for SalesForce action."
},
{
"type": "enhancement",
"category": "CloudFront",
"description": "Doc update to fix incorrect prefix in S3OriginConfig"
},
{
"type": "enhancement",
"category": "ACM",
"description": "Documentation update for AWS Certificate Manager."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "DatabaseMigrationService",
"description": "This release adds support for using Amazon S3 and Amazon DynamoDB as targets for database migration, and using MongoDB as a source for database migration. For more information, see the AWS Database Migration Service documentation."
}
]

17
vendor/aws/aws-sdk-php/.changes/3.28.3 vendored Normal file
View File

@@ -0,0 +1,17 @@
[
{
"type": "api-change",
"category": "StorageGateway",
"description": "Two Storage Gateway data types, Tape and TapeArchive, each have a new response element, TapeUsedInBytes. This element helps you manage your virtual tapes. By using TapeUsedInBytes, you can see the amount of data written to each virtual tape."
},
{
"type": "api-change",
"category": "IAM",
"description": "The unique ID and access key lengths were extended from 32 to 128"
},
{
"type": "api-change",
"category": "STS",
"description": "The unique ID and access key lengths were extended from 32 to 128."
}
]

12
vendor/aws/aws-sdk-php/.changes/3.28.4 vendored Normal file
View File

@@ -0,0 +1,12 @@
[
{
"type": "api-change",
"category": "AppStream",
"description": "Support added for persistent user storage, backed by S3."
},
{
"type": "api-change",
"category": "Rekognition",
"description": "Updated the CompareFaces API response to include orientation information, unmatched faces, landmarks, pose, and quality of the compared faces."
}
]

17
vendor/aws/aws-sdk-php/.changes/3.28.5 vendored Normal file
View File

@@ -0,0 +1,17 @@
[
{
"type": "api-change",
"category": "S3",
"description": "S3 calls are now done with a host style URL by default. Options for path style on the client and command levels are available as `use_path_style_endpoint` and `@use_path_style_endpoint`, respectively. [More details on the differences between the styles can be found here.](http:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/dev\/UsingBucket.html#access-bucket-intro)"
},
{
"type": "enhancement",
"category": "S3",
"description": "New example snippets for Amazon S3."
},
{
"type": "api-change",
"category": "CloudDirectory",
"description": "Cloud Directory has launched support for Typed Links, enabling customers to create object-to-object relationships that are not hierarchical in nature. Typed Links enable customers to quickly query for data along these relationships. Customers can also enforce referential integrity using Typed Links, ensuring data in use is not inadvertently deleted."
}
]

View File

@@ -0,0 +1,7 @@
[
{
"type": "api-change",
"category": "RDS",
"description": "Amazon RDS customers can now easily and quickly stop and start their DB instances."
}
]

Some files were not shown because too many files have changed in this diff Show More