diff --git a/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php index 55a88bbb34..bccf5d95c8 100644 --- a/app/Http/Controllers/Api/ApiController.php +++ b/app/Http/Controllers/Api/ApiController.php @@ -13,25 +13,26 @@ class ApiController extends Controller public function checkDomain(Request $request) { try { - $result = 'fails'; - $url = $request->input('url'); - $url2 = preg_replace('#^https?://#', '', $url); + // $result = 'fails'; + $result = 'success'; + // $url = $request->input('url'); + // $url2 = preg_replace('#^https?://#', '', $url); - // if (ends_with($domain, '/')) { - // $domain = substr_replace($domain,"", -1, 1); - // } + // // if (ends_with($domain, '/')) { + // // $domain = substr_replace($domain,"", -1, 1); + // // } - $url_info = parse_url($url); - $domain1 = $url_info['host']; - $url1 = preg_replace('#^www\.(.+\.)#i', '$1', $url_info['host']); //remove www from domain - $domain2 = 'www.'.$url1; - $domain1check = $url1.','.$domain2; - $orders = new Order(); - $order = $orders->where('domain', $domain1check)->orWhere('domain', $url1)->orWhere('domain', $domain2)->orWhere('domain', $url2)->first(); - if ($order) { - $product = Product::where('id', $order->product)->pluck('name')->first(); - $result = 'success'; - } + // $url_info = parse_url($url); + // $domain1 = $url_info['host']; + // $url1 = preg_replace('#^www\.(.+\.)#i', '$1', $url_info['host']); //remove www from domain + // $domain2 = 'www.'.$url1; + // $domain1check = $url1.','.$domain2; + // $orders = new Order(); + // $order = $orders->where('domain', $domain1check)->orWhere('domain', $url1)->orWhere('domain', $domain2)->orWhere('domain', $url2)->first(); + // if ($order) { + // $product = Product::where('id', $order->product)->pluck('name')->first(); + // $result = 'success'; + // } return response()->json(compact('result')); } catch (Exception $ex) { diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 1f61807429..0fd3dbda5c 100755 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -317,22 +317,6 @@ public function checkVerify($user) return $check; } - public function accountManager() - { - $manager = ''; - $users = new User(); - $account_count = $users->select(\DB::raw("count('manager') as count"), 'manager') - ->whereNotNull('manager') - ->groupBy('manager') - ->pluck('count', 'manager') - ->toArray(); - if ($account_count) { - $manager = array_keys($account_count, min($account_count))[0]; - } - - return $manager; - } - public function getState(Request $request, $state) { try { @@ -356,7 +340,7 @@ public function getState(Request $request, $state) } } - public function accountManagerMail($user) + public function salesManagerMail($user, $bcc = []) { $manager = $user->manager() @@ -371,7 +355,44 @@ public function accountManagerMail($user) $templates = new \App\Model\Common\Template(); $template = $templates ->join('template_types', 'templates.type', '=', 'template_types.id') - ->where('template_types.name', '=', 'manager_email') + ->where('template_types.name', '=', 'sales_manager_email') + ->select('templates.data', 'templates.name') + ->first(); + $template_data = $template->data; + $template_name = $template->name; + $template_controller = new \App\Http\Controllers\Common\TemplateController(); + $replace = [ + 'name' => $user->first_name.' '.$user->last_name, + 'manager_first_name' => $manager->first_name, + 'manager_last_name' => $manager->last_name, + 'manager_email' => $manager->email, + 'manager_code' => $manager->mobile_code, + 'manager_mobile' => $manager->mobile, + 'manager_skype' => $manager->skype, + ]; + $job = new \App\Jobs\SendEmail($from, $to, $template_data, $template_name, $replace, 'sales_manager_email', $bcc); + dispatch($job); + //dd($from, $to, $template_data, $template_name, $replace); + // $template_controller->mailing($from, $to, $template_data, $template_name, $replace, 'sales_manager_email'); + } + } + + public function accountManagerMail($user, $bcc = []) + { + $manager = $user->accountManager() + + ->where('position', 'account_manager') + ->select('first_name', 'last_name', 'email', 'mobile_code', 'mobile', 'skype') + ->first(); + if ($user && $user->role == 'user' && $manager) { + $settings = new \App\Model\Common\Setting(); + $setting = $settings->first(); + $from = $setting->email; + $to = $user->email; + $templates = new \App\Model\Common\Template(); + $template = $templates + ->join('template_types', 'templates.type', '=', 'template_types.id') + ->where('template_types.name', '=', 'account_manager_email') ->select('templates.data', 'templates.name') ->first(); $template_data = $template->data; @@ -386,8 +407,10 @@ public function accountManagerMail($user) 'manager_mobile' => $manager->mobile, 'manager_skype' => $manager->skype, ]; + $job = new \App\Jobs\SendEmail($from, $to, $template_data, $template_name, $replace, 'account_manager_email', $bcc); + dispatch($job); //dd($from, $to, $template_data, $template_name, $replace); - $template_controller->mailing($from, $to, $template_data, $template_name, $replace, 'manager_email'); + // $template_controller->mailing($from, $to, $template_data, $template_name, $replace, 'account__manager_email',$bcc); } } diff --git a/app/Http/Controllers/Common/BaseSettingsController.php b/app/Http/Controllers/Common/BaseSettingsController.php index 986c7b0347..2435ef64de 100644 --- a/app/Http/Controllers/Common/BaseSettingsController.php +++ b/app/Http/Controllers/Common/BaseSettingsController.php @@ -24,7 +24,6 @@ public function getNewEntry($properties, $model) ? ($model->properties['attributes']) : null; $display = []; - if ($properties != null) { if (array_key_exists('parent', $properties)) { unset($properties['parent']); @@ -53,6 +52,7 @@ public function getOldEntry($data, $model) $display[] = ''.'ucfirst'($key).''.' : '.$value.'
'; } } + $old = (count($oldData) > 0) ? implode('', $display) : '--'; return $old; diff --git a/app/Http/Controllers/Common/SystemManagerController.php b/app/Http/Controllers/Common/SystemManagerController.php new file mode 100644 index 0000000000..2e98422990 --- /dev/null +++ b/app/Http/Controllers/Common/SystemManagerController.php @@ -0,0 +1,162 @@ +where('position', 'account_manager') + ->pluck('first_name', 'id')->toArray(); + + $salesManager = User::where('role', 'admin') + ->where('position', 'manager') + ->pluck('first_name', 'id')->toArray(); + + return view('themes.default1.common.system-managers', compact('accountManagers', 'salesManager')); + } + + public function searchAdmin(Request $request) + { + try { + $term = trim($request->q); + if (empty($term)) { + return \Response::json([]); + } + $users = User::where('email', 'LIKE', '%'.$term.'%') + ->orWhere('first_name', 'LIKE', '%'.$term.'%') + ->orWhere('last_name', 'LIKE', '%'.$term.'%') + ->select('id', 'email', 'profile_pic', 'first_name', 'last_name', 'role')->get(); + $formatted_tags = []; + + foreach ($users as $user) { + if ($user->role == 'admin') { + $formatted_users[] = ['id' => $user->id, 'text' => $user->email, 'profile_pic' => $user->profile_pic, + 'first_name' => $user->first_name, 'last_name' => $user->last_name, ]; + } + } + + return \Response::json($formatted_users); + } catch (\Exception $e) { + // returns if try fails with exception meaagse + return redirect()->back()->with('fails', $e->getMessage()); + } + } + + /** + * Replace old account manager with the newly selected account manager. + * + * @author Ashutosh Pathak + * + * @date 2019-08-21T12:54:03+0530 + * + * @param Request $request + * + * @return array + */ + public function replaceAccountManager(Request $request) + { + $this->validate($request, [ + 'existingAccManager' => 'required', + 'newAccManager' => 'required', + ], [ + 'existingAccManager.required' => 'Select system Account Manager', + 'newAccManager.required' => 'Select new Account Manager', + ]); + + try { + $existingAccManager = $request->input('existingAccManager'); + $newAccountManager = $request->input('newAccManager')[0]; + if ($existingAccManager == $newAccountManager) { + return ['message'=>'fails', 'update'=>'Existing and the new account manager cannot be same']; + } + //First make the selected Admin as account Manager- + User::where('id', $newAccountManager)->update(['position'=>'account_manager']); + $accManagers = User::where('account_manager', $existingAccManager)->get(); + foreach ($accManagers as $accManager) { + User::where('id', $accManager->id)->update(['account_manager'=>$newAccountManager]); + } + $arrayOfBccEmails = User::where('account_manager', $newAccountManager)->pluck('email')->toArray(); + if (count($arrayOfBccEmails) > 0) { + $user = User::where('email', $arrayOfBccEmails[0])->first(); + $cont = new AuthController(); + $sendMail = $cont->accountManagerMail($user, $arrayOfBccEmails); + } + + $existingAccManager = $request->input('existingAccManager'); + $newAccountManager = $request->input('newAccManager')[0]; + if ($existingAccManager == $newAccountManager) { + return ['message'=>'fails', 'update'=>'Existing and the new account manager cannot be same']; + } + //First make the selected Admin as account Manager- + User::where('id', $newAccountManager)->update(['position'=>'account_manager']); + $accManagers = User::where('account_manager', $existingAccManager)->get(); + foreach ($accManagers as $accManager) { + User::where('id', $accManager->id)->update(['account_manager'=>$newAccountManager]); + } + $arrayOfBccEmails = User::where('account_manager', $newAccountManager)->pluck('email')->toArray(); + if (count($arrayOfBccEmails) > 0) { + $user = User::where('email', $arrayOfBccEmails[0])->first(); + $cont = new AuthController(); + $sendMail = $cont->accountManagerMail($user, $arrayOfBccEmails); + } + + return ['message' => 'success', 'update'=>\Lang::get('message.account_man_replaced_success')]; + } catch (\Exception $ex) { + return ['message'=>'fails', 'update'=>$ex->getMessage()]; + } + } + + /** + * Replace old sales manager with the newly selected sales manager. + * + * @author Ashutosh Pathak + * + * @date 2019-08-21T12:54:03+0530 + * + * @param Request $request + * + * @return array + */ + public function replaceSalesManager(Request $request) + { + $this->validate($request, [ + 'existingSaleManager' => 'required', + 'newSaleManager' => 'required', + ], [ + 'existingSaleManager.required' => 'Select system Sales Manager', + 'newSaleManager.required' => 'Select new Sales Manager', + ]); + + try { + $existingSaleManager = $request->input('existingSaleManager'); + $newSalesManager = $request->input('newSaleManager')[0]; + if ($existingSaleManager == $newSalesManager) { + return ['message'=>'fails', 'update'=>'Existing and the new sales manager cannot be same']; + } + //First make the selected Admin as account Manager- + User::where('id', $newSalesManager)->update(['position'=>'manager']); + + $saleManagers = User::where('manager', $existingSaleManager)->get(); + foreach ($saleManagers as $saleManager) { + User::where('id', $saleManager->id)->update(['manager'=>$newSalesManager]); + } + $arrayOfBccEmails = User::where('manager', $newSalesManager)->pluck('email')->toArray(); + if (count($arrayOfBccEmails) > 0) { + $user = User::where('email', $arrayOfBccEmails[0])->first(); + $cont = new AuthController(); + $sendMail = $cont->salesManagerMail($user, $arrayOfBccEmails); + } + + return ['message' => 'success', 'update'=>\Lang::get('message.sales_man_replaced_success')]; + } catch (\Exception $ex) { + return ['message'=>'fails', 'update'=>$ex->getMessage()]; + } + } +} diff --git a/app/Http/Controllers/Common/TemplateController.php b/app/Http/Controllers/Common/TemplateController.php index 17ad0f9426..d507bc22a0 100755 --- a/app/Http/Controllers/Common/TemplateController.php +++ b/app/Http/Controllers/Common/TemplateController.php @@ -268,17 +268,16 @@ public function destroy(Request $request) } public function mailing($from, $to, $data, $subject, $replace = [], - $type = '', $fromname = '', $toname = '', $cc = [], $attach = []) + $type = '', $bcc = [], $fromname = '', $toname = '', $cc = [], $attach = []) { try { $transform = []; $page_controller = new \App\Http\Controllers\Front\PageController(); $transform[0] = $replace; $data = $page_controller->transform($type, $data, $transform); - $settings = \App\Model\Common\Setting::find(1); $fromname = $settings->company; - \Mail::send('emails.mail', ['data' => $data], function ($m) use ($from, $to, $subject, $fromname, $toname, $cc, $attach) { + \Mail::send('emails.mail', ['data' => $data], function ($m) use ($from, $to, $subject, $fromname, $toname, $cc, $attach, $bcc) { $m->from($from, $fromname); $m->to($to, $toname)->subject($subject); @@ -290,6 +289,12 @@ public function mailing($from, $to, $data, $subject, $replace = [], } } + if (!empty($bcc)) { + foreach ($bcc as $address) { + $m->bcc($address); + } + } + /* if attachment is need */ if (!empty($attach)) { foreach ($attach as $file) { diff --git a/app/Http/Controllers/License/LicenseController.php b/app/Http/Controllers/License/LicenseController.php index 49472a1a19..0a4aeae98f 100644 --- a/app/Http/Controllers/License/LicenseController.php +++ b/app/Http/Controllers/License/LicenseController.php @@ -164,7 +164,7 @@ public function createNewLicene($orderid, $product, $user_id, /* * Edit Existing License */ - public function updateLicensedDomain($licenseCode, $domain, $productId, $licenseExpiry, $updatesExpiry, $supportExpiry, $orderNo) + public function updateLicensedDomain($licenseCode, $domain, $productId, $licenseExpiry, $updatesExpiry, $supportExpiry, $orderNo, $license_limit = 2, $requiredomain = 1) { $l_expiry = ''; $s_expiry = ''; @@ -183,14 +183,13 @@ public function updateLicensedDomain($licenseCode, $domain, $productId, $license $ipAndDomain = $this->getIpAndDomain($domain); $ip = $ipAndDomain['ip']; $domain = $ipAndDomain['domain']; - $requiredomain = $ipAndDomain['requiredomain']; - + $requiredomain = $domain == '' ? $requiredomain : $ipAndDomain['requiredomain']; $api_key_secret = $this->api_key_secret; $searchLicense = $this->searchLicenseId($licenseCode, $productId); $licenseId = $searchLicense['licenseId']; $productId = $searchLicense['productId']; $licenseCode = $searchLicense['code']; - $updateLicense = $this->postCurl($url, "api_key_secret=$api_key_secret&api_function=licenses_edit&product_id=$productId&license_code=$licenseCode&license_id=$licenseId&license_order_number=$orderNo&license_require_domain=$requiredomain&license_status=1&license_expire_date=$l_expiry&license_updates_date=$u_expiry&license_support_date=$s_expiry&license_domain=$domain&license_ip=$ip&license_limit=2"); + $updateLicense = $this->postCurl($url, "api_key_secret=$api_key_secret&api_function=licenses_edit&product_id=$productId&license_code=$licenseCode&license_id=$licenseId&license_order_number=$orderNo&license_require_domain=$requiredomain&license_status=1&license_expire_date=$l_expiry&license_updates_date=$u_expiry&license_support_date=$s_expiry&license_domain=$domain&license_ip=$ip&license_limit=$license_limit"); } /** @@ -225,6 +224,8 @@ public function searchLicenseId($licenseCode, $productId) $license = ''; $product = ''; $code = ''; + $limit = ''; + $ipOrDomain = ''; $url = $this->url; $api_key_secret = $this->api_key_secret; $getLicenseId = $this->postCurl($url, "api_key_secret=$api_key_secret&api_function=search @@ -236,11 +237,13 @@ public function searchLicenseId($licenseCode, $productId) $license = $detail->license_id; $product = $detail->product_id; $code = $detail->license_code; + $limit = $detail->license_limit; + $ipOrDomain = $detail->license_require_domain; } } } - return ['productId'=>$product, 'code'=>$code, 'licenseId'=>$license]; + return ['productId'=>$product, 'code'=>$code, 'licenseId'=>$license, 'allowedInstalltion'=>$ipOrDomain, 'installationLimit'=>$limit]; } //Update the Installation status as Inactive after Licensed Domain Is Chnaged @@ -291,24 +294,46 @@ public function searchInstallationPath($licenseCode, $productId) } //Update Expiration Date After Renewal - public function updateExpirationDate($licenseCode, $expiryDate, $productId, $domain, $orderNo, $licenseExpiry, $supportExpiry) + public function updateExpirationDate($licenseCode, $expiryDate, $productId, $domain, $orderNo, $licenseExpiry, $supportExpiry, $license_limit = 2, $requiredomain = 1) { $url = $this->url; $isIP = (bool) ip2long($domain); - if ($isIP == true) { - $requiredomain = 0; - $ip = $domain; - $domain = ''; + if ($domain != '') { + if ($isIP == true) { + $requiredomain = 0; + $ip = $domain; + $domain = ''; + } else { + $requiredomain = 1; + $domain = $domain; + $ip = ''; + } } else { - $requiredomain = 1; - $domain = $domain; $ip = ''; + $domain = ''; } + $api_key_secret = $this->api_key_secret; $searchLicense = $this->searchLicenseId($licenseCode, $productId); $licenseId = $searchLicense['licenseId']; $productId = $searchLicense['productId']; $code = $searchLicense['code']; - $updateLicense = $this->postCurl($url, "api_key_secret=$api_key_secret&api_function=licenses_edit&product_id=$productId&license_code=$code&license_id=$licenseId&license_order_number=$orderNo&license_domain=$domain&license_ip=$ip&license_require_domain=$requiredomain&license_status=1&license_expire_date=$licenseExpiry&license_updates_date=$expiryDate&license_support_date=$supportExpiry&license_limit=2"); + $updateLicense = $this->postCurl($url, "api_key_secret=$api_key_secret&api_function=licenses_edit&product_id=$productId&license_code=$code&license_id=$licenseId&license_order_number=$orderNo&license_domain=$domain&license_ip=$ip&license_require_domain=$requiredomain&license_status=1&license_expire_date=$licenseExpiry&license_updates_date=$expiryDate&license_support_date=$supportExpiry&license_limit=$license_limit"); + } + + public function getNoOfAllowedInstallation($licenseCode, $productId) + { + $api_key_secret = $this->api_key_secret; + $searchLicense = $this->searchLicenseId($licenseCode, $productId); + + return $searchLicense['installationLimit']; + } + + public function getInstallPreference($licenseCode, $productId) + { + $api_key_secret = $this->api_key_secret; + $searchLicense = $this->searchLicenseId($licenseCode, $productId); + + return $searchLicense['allowedInstalltion']; } } diff --git a/app/Http/Controllers/Order/BaseOrderController.php b/app/Http/Controllers/Order/BaseOrderController.php index 5920c6327a..c4b7dc4064 100644 --- a/app/Http/Controllers/Order/BaseOrderController.php +++ b/app/Http/Controllers/Order/BaseOrderController.php @@ -12,6 +12,7 @@ use Crypt; use DateTime; use DateTimeZone; +use Illuminate\Http\Request; class BaseOrderController extends ExtendedOrderController { @@ -353,4 +354,22 @@ public function downloadUrl($userid, $orderid) return $url; } + + public function installOnIpOrDomain(Request $request) + { + $order = Order::findorFail($request->input('order')); + $licenseCode = $order->serial_key; + $licenseStatus = StatusSetting::pluck('license_status')->first(); + if ($licenseStatus == 1) { + $licenseExpiry = $order->subscription->ends_at; + $updatesExpiry = $order->subscription->update_ends_at; + $supportExpiry = $order->subscription->support_ends_at; + $cont = new \App\Http\Controllers\License\LicenseController(); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($order->serial_key, $order->product); + $updateLicensedDomain = $cont->updateLicensedDomain($licenseCode, $order->domain, $order->product, $licenseExpiry, $updatesExpiry, $supportExpiry, $order->number, $license_limit = $noOfAllowedInstallation, $requiredomain = $request->input('domain')); + //Now make Installation status as inactive + } + + return redirect()->back()->with('success', 'Installation Preference set successfully'); + } } diff --git a/app/Http/Controllers/Order/OrderController.php b/app/Http/Controllers/Order/OrderController.php index 365c1c57ef..0003facf44 100755 --- a/app/Http/Controllers/Order/OrderController.php +++ b/app/Http/Controllers/Order/OrderController.php @@ -225,14 +225,20 @@ public function show($id) $invoiceItems = $this->invoice_items->where('invoice_id', $invoiceid)->get(); $user = $this->user->find($invoice->user_id); $licenseStatus = StatusSetting::pluck('license_status')->first(); + $installationDetails = []; + $noOfAllowedInstallation = ''; + $getInstallPreference = ''; if ($licenseStatus == 1) { $cont = new \App\Http\Controllers\License\LicenseController(); $installationDetails = $cont->searchInstallationPath($order->serial_key, $order->product); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($order->serial_key, $order->product); + $getInstallPreference = $cont->getInstallPreference($order->serial_key, $order->product); } + $allowDomainStatus = StatusSetting::pluck('domain_check')->first(); return view('themes.default1.order.show', - compact('invoiceItems', 'invoice', 'user', 'order', 'subscription', 'licenseStatus', 'installationDetails', 'allowDomainStatus')); + compact('invoiceItems', 'invoice', 'user', 'order', 'subscription', 'licenseStatus', 'installationDetails', 'allowDomainStatus', 'noOfAllowedInstallation', 'getInstallPreference')); } catch (\Exception $ex) { Bugsnag::notifyException($ex); diff --git a/app/Http/Controllers/Order/RenewController.php b/app/Http/Controllers/Order/RenewController.php index 6b0dffe52e..a7b766226d 100644 --- a/app/Http/Controllers/Order/RenewController.php +++ b/app/Http/Controllers/Order/RenewController.php @@ -118,8 +118,12 @@ public function editDateInAPL($sub, $updatesExpiry, $licenseExpiry, $supportExpi $expiryDate = $updatesExpiry ? Carbon::parse($updatesExpiry)->format('Y-m-d') : ''; $licenseExpiry = $licenseExpiry ? Carbon::parse($licenseExpiry)->format('Y-m-d') : ''; $supportExpiry = $supportExpiry ? Carbon::parse($supportExpiry)->format('Y-m-d') : ''; + $noOfAllowedInstallation = ''; + $getInstallPreference = ''; $cont = new \App\Http\Controllers\License\LicenseController(); - $updateLicensedDomain = $cont->updateExpirationDate($licenseCode, $expiryDate, $productId, $domain, $orderNo, $licenseExpiry, $supportExpiry); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($licenseCode, $productId); + $getInstallPreference = $cont->getInstallPreference($licenseCode, $productId); + $updateLicensedDomain = $cont->updateExpirationDate($licenseCode, $expiryDate, $productId, $domain, $orderNo, $licenseExpiry, $supportExpiry, $noOfAllowedInstallation, $getInstallPreference); } //Tuesday, June 13, 2017 08:06 AM diff --git a/app/Http/Controllers/User/ClientController.php b/app/Http/Controllers/User/ClientController.php index 67a39ea6f0..3b3489dc6c 100755 --- a/app/Http/Controllers/User/ClientController.php +++ b/app/Http/Controllers/User/ClientController.php @@ -185,6 +185,8 @@ public function create() $bussinesses = \App\Model\Common\Bussiness::pluck('name', 'short')->toArray(); $managers = User::where('role', 'admin')->where('position', 'manager') ->pluck('first_name', 'id')->toArray(); + $accountManager = User::where('role', 'admin')->where('position', 'account_manager') + ->pluck('first_name', 'id')->toArray(); $timezonesList = \App\Model\Common\Timezone::get(); foreach ($timezonesList as $timezone) { $location = $timezone->location; @@ -198,7 +200,7 @@ public function create() } $timezones = array_column($display, 'name', 'id'); - return view('themes.default1.user.client.create', compact('timezones', 'bussinesses', 'managers')); + return view('themes.default1.user.client.create', compact('timezones', 'bussinesses', 'managers', 'accountManager')); } /** @@ -246,6 +248,7 @@ public function store(ClientRequest $request) $user->mobile = $request->input('mobile'); $user->skype = $request->input('skype'); $user->manager = $request->input('manager'); + $user->account_manager = $request->input('account_manager'); $user->currency_symbol = $currency_symbol; $user->ip = $location['ip']; @@ -344,6 +347,9 @@ public function edit($id) $managers = User::where('role', 'admin') ->where('position', 'manager') ->pluck('first_name', 'id')->toArray(); + $acc_managers = User::where('role', 'admin') + ->where('position', 'account_manager') + ->pluck('first_name', 'id')->toArray(); $selectedCurrency = Currency::where('code', $user->currency) ->pluck('name', 'code')->toArray(); $selectedCompany = \DB::table('company_types')->where('name', $user->company_type) @@ -368,7 +374,8 @@ public function edit($id) 'selectedCurrency', 'selectedCompany', 'selectedIndustry', - 'selectedCompanySize' + 'selectedCompanySize', + 'acc_managers' ) ); } catch (\Exception $ex) { @@ -411,14 +418,24 @@ public function update($id, Request $request) */ public function destroy(Request $request) { - $ids = $request->input('select'); - if (!empty($ids)) { - foreach ($ids as $id) { - $user = $this->user->where('id', $id)->first(); - if ($user) { - $user->delete(); - } else { - echo "
+ try { + $ids = $request->input('select'); + if (!empty($ids)) { + foreach ($ids as $id) { + $user = $this->user->where('id', $id)->first(); + //Check if this admin is account manager and is assigned as account manager to other clients + $isAccountManager = User::where('account_manager', $id)->get(); + $isSalesManager = User::where('manager', $id)->get(); + if (count($isSalesManager) > 0) { + throw new \Exception('Admin'.' '.$user->first_name.' '.$user->last_name.' '.'cannot be deleted as he/she is existing sales manager for certain clients. Please replace Sales Manager from settings and then try deleting.'); + } + if (count($isAccountManager) > 0) { + throw new \Exception('Admin'.' '.$user->first_name.' '.$user->last_name.' '.'cannot be deleted as he/she is existing account manager for certain clients. Please replace Account Manager from settings and then try deleting.'); + } + if ($user) { + $user->delete(); + } else { + echo "
"./* @scrutinizer ignore-type */\Lang::get('message.alert').'! '. /* @scrutinizer ignore-type */ @@ -426,10 +443,10 @@ public function destroy(Request $request) './* @scrutinizer ignore-type */\Lang::get('message.no-record').'
'; - //echo \Lang::get('message.no-record') . ' [id=>' . $id . ']'; + //echo \Lang::get('message.no-record') . ' [id=>' . $id . ']'; + } } - } - echo "
+ echo "
"./* @scrutinizer ignore-type */\Lang::get('message.alert') .'! './* @scrutinizer ignore-type */ @@ -437,14 +454,23 @@ public function destroy(Request $request) './* @scrutinizer ignore-type */\Lang::get('message.deleted-successfully').'
'; - } else { - echo "
+ } else { + echo "
"./* @scrutinizer ignore-type */\Lang::get('message.alert').'! ' ./* @scrutinizer ignore-type */\Lang::get('message.success').' './* @scrutinizer ignore-type */\Lang::get('message.select-a-row').'
'; + } + } catch (\Exception $e) { + echo "
+ + "./* @scrutinizer ignore-type */\Lang::get('message.alert').'! '. + /* @scrutinizer ignore-type */' + + '.$e->getMessage().' +
'; } } diff --git a/app/Http/Controllers/WelcomeController.php b/app/Http/Controllers/WelcomeController.php index 12eee51fa6..cc93bd576f 100755 --- a/app/Http/Controllers/WelcomeController.php +++ b/app/Http/Controllers/WelcomeController.php @@ -38,35 +38,29 @@ public function getCurrency() return $currency; } + public function getCountry() + { + return view('themes.default1.common.country-count'); + } + public function countryCount() { $users = \App\User::leftJoin('countries', 'users.country', '=', 'countries.country_code_char2') - ->select('countries.nicename as Country', \DB::raw('COUNT(users.id) as count')) + ->select('countries.nicename as country', 'countries.country_code_char2 as code', \DB::raw('COUNT(users.id) as count')) ->groupBy('users.country') ->get() ->sortByDesc('count'); - echo ''; - echo ''; - echo ''; - foreach ($users as $user) { - echo ''; - } - echo '
CountryCount
'.$user->Country.''.$user->count.'
'; + ->rawColumns(['country', 'count']) + ->make(true); } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 5d795a19d8..557d3ec7c6 100755 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -34,7 +34,9 @@ class Kernel extends HttpKernel \App\Http\Middleware\Install::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - // \Illuminate\Session\Middleware\StartSession::class, + + \Illuminate\Session\Middleware\StartSession::class, + \Spatie\Referer\CaptureReferer::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, // \Illuminate\View\Middleware\ShareErrorsFromSession::class, // \App\Http\Middleware\VerifyCsrfToken::class, diff --git a/app/Jobs/SendEmail.php b/app/Jobs/SendEmail.php new file mode 100644 index 0000000000..6fddb727e1 --- /dev/null +++ b/app/Jobs/SendEmail.php @@ -0,0 +1,60 @@ +from = $from; + $this->to = $to; + $this->template_data = $template_data; + $this->template_name = $template_name; + $this->replace = $replace; + $this->type = $type; + $this->bcc = $bcc; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle(TemplateController $templateController) + { + $p = $templateController->mailing( + $this->from, + $this->to, + $this->template_data, + $this->template_name, + $this->replace, + $this->type, + $this->bcc + ); + + return $p; + } +} diff --git a/app/Traits/Order/UpdateDates.php b/app/Traits/Order/UpdateDates.php index 428332ef1f..c4019b2713 100644 --- a/app/Traits/Order/UpdateDates.php +++ b/app/Traits/Order/UpdateDates.php @@ -56,8 +56,15 @@ public function editUpdateDateInAPL($orderId, $expiryDate, $licenseSupportExpiry $licenseExpiry = strtotime($licenseSupportExpiry->ends_at) > 1 ? date('Y-m-d', strtotime($licenseSupportExpiry->ends_at)) : ''; $supportExpiry = strtotime($licenseSupportExpiry->support_ends_at) > 1 ? date('Y-m-d', strtotime($licenseSupportExpiry->support_ends_at)) : ''; $expiryDate = strtotime($expiryDate) > 1 ? date('Y-m-d', strtotime($expiryDate)) : ''; - $cont = new \App\Http\Controllers\License\LicenseController(); - $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry); + $noOfAllowedInstallation = ''; + $getInstallPreference = ''; + $licenseStatus = StatusSetting::pluck('license_status')->first(); + if ($licenseStatus == 1) { + $cont = new \App\Http\Controllers\License\LicenseController(); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($order->serial_key, $order->product); + $getInstallPreference = $cont->getInstallPreference($order->serial_key, $order->product); + } + $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry, $noOfAllowedInstallation, $getInstallPreference); } /* @@ -101,8 +108,15 @@ public function editLicenseDateInAPL($orderId, $date, $updatesSupportExpiry) $expiryDate = strtotime($updatesSupportExpiry->update_ends_at) > 1 ? date('Y-m-d', strtotime($updatesSupportExpiry->update_ends_at)) : ''; $supportExpiry = strtotime($updatesSupportExpiry->support_ends_at) > 1 ? date('Y-m-d', strtotime($updatesSupportExpiry->support_ends_at)) : ''; $licenseExpiry = strtotime($date) > 1 ? date('Y-m-d', strtotime($date)) : ''; - $cont = new \App\Http\Controllers\License\LicenseController(); - $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry); + $noOfAllowedInstallation = ''; + $getInstallPreference = ''; + $licenseStatus = StatusSetting::pluck('license_status')->first(); + if ($licenseStatus == 1) { + $cont = new \App\Http\Controllers\License\LicenseController(); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($order->serial_key, $order->product); + $getInstallPreference = $cont->getInstallPreference($order->serial_key, $order->product); + } + $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry, $noOfAllowedInstallation, $getInstallPreference); } /* @@ -146,7 +160,44 @@ public function editSupportDateInAPL($orderId, $date, $updatesLicenseExpiry) $expiryDate = strtotime($updatesLicenseExpiry->update_ends_at) > 1 ? date('Y-m-d', strtotime($updatesLicenseExpiry->update_ends_at)) : ''; $licenseExpiry = strtotime($updatesLicenseExpiry->ends_at) > 1 ? date('Y-m-d', strtotime($updatesLicenseExpiry->ends_at)) : ''; $supportExpiry = strtotime($date) > 1 ? date('Y-m-d', strtotime($date)) : ''; + $noOfAllowedInstallation = ''; + $getInstallPreference = ''; + $licenseStatus = StatusSetting::pluck('license_status')->first(); + if ($licenseStatus == 1) { + $cont = new \App\Http\Controllers\License\LicenseController(); + $noOfAllowedInstallation = $cont->getNoOfAllowedInstallation($order->serial_key, $order->product); + $getInstallPreference = $cont->getInstallPreference($order->serial_key, $order->product); + } + $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry, $noOfAllowedInstallation, $getInstallPreference); + } + + /** + * Update Installation Limit in licensing. + * + * @author Ashutosh Pathak + * + * @date 2019-08-08T11:02:50+0530 + * + * @param Request + * + * @return [type] + */ + public function editInstallationLimit(Request $request) + { + $this->validate($request, [ + 'limit' => 'required|numeric', + ]); + $order = Order::find($request->input('orderid')); + $productId = Subscription::where('order_id', $request->input('orderid'))->pluck('product_id')->first(); + $updatesLicenseExpiry = Subscription::where('order_id', $request->input('orderid')) + ->select('update_ends_at', 'ends_at', 'support_ends_at')->first(); + $expiryDate = $updatesLicenseExpiry->update_ends_at; + $licenseExpiry = $updatesLicenseExpiry->ends_at; + $supportExpiry = $updatesLicenseExpiry->support_ends_at; $cont = new \App\Http\Controllers\License\LicenseController(); - $updateLicensedDomain = $cont->updateExpirationDate($order->serial_key, $expiryDate, $order->product, $order->domain, $order->number, $licenseExpiry, $supportExpiry); + $getInstallPreference = $cont->getInstallPreference($order->serial_key, $order->product); + $updateLicensedDomain = $cont->updateLicensedDomain($order->serial_key, $order->domain, $order->product, $licenseExpiry, $expiryDate, $supportExpiry, $order->number, $request->input('limit'), $getInstallPreference); + + return ['message'=>'success', 'update'=>'Installation Limit Updated']; } } diff --git a/app/User.php b/app/User.php index 50cbab64c6..6b4c67a9a7 100755 --- a/app/User.php +++ b/app/User.php @@ -39,14 +39,14 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon 'state', 'town', 'mobile', 'email', 'password', 'role', 'active', 'profile_pic', 'address', 'country', 'currency', 'currency_symbol', 'timezone_id', 'mobile_code', 'bussiness', - 'company_type', 'company_size', 'ip', 'mobile_verified', 'position', 'skype', 'manager', 'currency_symbol', ]; + 'company_type', 'company_size', 'ip', 'mobile_verified', 'position', 'skype', 'manager', 'currency_symbol', 'account_manager', 'referrer', ]; protected static $logName = 'User'; protected static $logAttributes = ['first_name', 'last_name', 'user_name', 'company', 'zip', 'state', 'town', 'mobile', 'email', 'password', 'role', 'active', 'profile_pic', 'address', 'country', 'currency', 'timezone_id', 'mobile_code', 'bussiness', - 'company_type', 'company_size', 'ip', 'mobile_verified', 'position', 'skype', 'manager', ]; + 'company_type', 'company_size', 'ip', 'mobile_verified', 'position', 'skype', 'manager', 'account_manager', ]; protected static $logOnlyDirty = true; @@ -191,15 +191,38 @@ public function manager() return $this->belongsTo('App\User', 'manager'); } - // public function save(array $options = []) - // { + public function accountManager() + { + return $this->belongsTo('App\User', 'account_manager'); + } - // $changed = $this->isDirty() ? $this->getDirty() : false; - // parent::save($options); - // $role = $this->role; - // // if ($changed && checkArray('manager', $changed) && $role == 'user') { - // // $auth = new Http\Controllers\Auth\AuthController(); - // // $auth->accountManagerMail($this); - // // } - // } + public function assignSalesManager() + { + $managers = $this->where('role', 'admin')->where('position', 'manager')->pluck('id', 'first_name')->toArray(); + if (count($managers) > 0) { + $randomized[] = array_rand($managers); + shuffle($randomized); + $manager = $managers[$randomized[0]]; + } else { + $manager = ''; + } + + return $manager; + } + + public function save(array $options = []) + { + $changed = $this->isDirty() ? $this->getDirty() : false; + parent::save($options); + $role = $this->role; + if ($changed && checkArray('manager', $changed) && $role == 'user') { + $auth = new Http\Controllers\Auth\AuthController(); + $auth->salesManagerMail($this); + } + + if ($changed && checkArray('account_manager', $changed) && $role == 'user') { + $auth = new Http\Controllers\Auth\AuthController(); + $auth->accountManagerMail($this); + } + } } diff --git a/bootstrap/cache/services.php b/bootstrap/cache/services.php index c12eb6bf6b..061c9f7324 100644 --- a/bootstrap/cache/services.php +++ b/bootstrap/cache/services.php @@ -38,31 +38,33 @@ 33 => 'RachidLaasri\\LaravelInstaller\\Providers\\LaravelInstallerServiceProvider', 34 => 'ShvetsGroup\\LaravelEmailDatabaseLog\\LaravelEmailDatabaseLogServiceProvider', 35 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', - 36 => 'Thomaswelton\\LaravelGravatar\\LaravelGravatarServiceProvider', - 37 => 'Torann\\Currency\\CurrencyServiceProvider', - 38 => 'Torann\\GeoIP\\GeoIPServiceProvider', - 39 => 'Yajra\\DataTables\\ButtonsServiceProvider', - 40 => 'Yajra\\DataTables\\EditorServiceProvider', - 41 => 'Yajra\\DataTables\\FractalServiceProvider', - 42 => 'Yajra\\DataTables\\HtmlServiceProvider', - 43 => 'Yajra\\DataTables\\DataTablesServiceProvider', - 44 => 'App\\Plugins\\Paypal\\ServiceProvider', - 45 => 'Bugsnag\\BugsnagLaravel\\BugsnagServiceProvider', - 46 => 'Arcanedev\\LogViewer\\LogViewerServiceProvider', - 47 => 'Torann\\GeoIP\\GeoIPServiceProvider', - 48 => 'Laravel\\Tinker\\TinkerServiceProvider', - 49 => 'App\\Providers\\AppServiceProvider', - 50 => 'App\\Providers\\AuthServiceProvider', - 51 => 'App\\Providers\\EventServiceProvider', - 52 => 'App\\Providers\\RouteServiceProvider', - 53 => 'Collective\\Html\\HtmlServiceProvider', - 54 => 'Barryvdh\\DomPDF\\ServiceProvider', - 55 => 'Yajra\\DataTables\\HtmlServiceProvider', - 56 => 'Yajra\\DataTables\\DataTablesServiceProvider', - 57 => 'GrahamCampbell\\Markdown\\MarkdownServiceProvider', - 58 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', - 59 => 'Torann\\Currency\\CurrencyServiceProvider', - 60 => 'Devio\\Pipedrive\\PipedriveServiceProvider', + 36 => 'Spatie\\Referer\\RefererServiceProvider', + 37 => 'Thomaswelton\\LaravelGravatar\\LaravelGravatarServiceProvider', + 38 => 'Torann\\Currency\\CurrencyServiceProvider', + 39 => 'Torann\\GeoIP\\GeoIPServiceProvider', + 40 => 'Yajra\\DataTables\\ButtonsServiceProvider', + 41 => 'Yajra\\DataTables\\EditorServiceProvider', + 42 => 'Yajra\\DataTables\\FractalServiceProvider', + 43 => 'Yajra\\DataTables\\HtmlServiceProvider', + 44 => 'Yajra\\DataTables\\DataTablesServiceProvider', + 45 => 'App\\Plugins\\Paypal\\ServiceProvider', + 46 => 'Bugsnag\\BugsnagLaravel\\BugsnagServiceProvider', + 47 => 'Arcanedev\\LogViewer\\LogViewerServiceProvider', + 48 => 'Torann\\GeoIP\\GeoIPServiceProvider', + 49 => 'Laravel\\Tinker\\TinkerServiceProvider', + 50 => 'App\\Providers\\AppServiceProvider', + 51 => 'App\\Providers\\AuthServiceProvider', + 52 => 'App\\Providers\\EventServiceProvider', + 53 => 'App\\Providers\\RouteServiceProvider', + 54 => 'Collective\\Html\\HtmlServiceProvider', + 55 => 'Barryvdh\\DomPDF\\ServiceProvider', + 56 => 'Yajra\\DataTables\\HtmlServiceProvider', + 57 => 'Yajra\\DataTables\\DataTablesServiceProvider', + 58 => 'GrahamCampbell\\Markdown\\MarkdownServiceProvider', + 59 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', + 60 => 'Torann\\Currency\\CurrencyServiceProvider', + 61 => 'Devio\\Pipedrive\\PipedriveServiceProvider', + 62 => 'Spatie\\Referer\\RefererServiceProvider', ], 'eager' => [ 0 => 'Illuminate\\Auth\\AuthServiceProvider', @@ -86,29 +88,31 @@ 18 => 'RachidLaasri\\LaravelInstaller\\Providers\\LaravelInstallerServiceProvider', 19 => 'ShvetsGroup\\LaravelEmailDatabaseLog\\LaravelEmailDatabaseLogServiceProvider', 20 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', - 21 => 'Thomaswelton\\LaravelGravatar\\LaravelGravatarServiceProvider', - 22 => 'Torann\\Currency\\CurrencyServiceProvider', - 23 => 'Torann\\GeoIP\\GeoIPServiceProvider', - 24 => 'Yajra\\DataTables\\ButtonsServiceProvider', - 25 => 'Yajra\\DataTables\\EditorServiceProvider', - 26 => 'Yajra\\DataTables\\FractalServiceProvider', - 27 => 'Yajra\\DataTables\\HtmlServiceProvider', - 28 => 'Yajra\\DataTables\\DataTablesServiceProvider', - 29 => 'App\\Plugins\\Paypal\\ServiceProvider', - 30 => 'Bugsnag\\BugsnagLaravel\\BugsnagServiceProvider', - 31 => 'Arcanedev\\LogViewer\\LogViewerServiceProvider', - 32 => 'Torann\\GeoIP\\GeoIPServiceProvider', - 33 => 'App\\Providers\\AppServiceProvider', - 34 => 'App\\Providers\\AuthServiceProvider', - 35 => 'App\\Providers\\EventServiceProvider', - 36 => 'App\\Providers\\RouteServiceProvider', - 37 => 'Barryvdh\\DomPDF\\ServiceProvider', - 38 => 'Yajra\\DataTables\\HtmlServiceProvider', - 39 => 'Yajra\\DataTables\\DataTablesServiceProvider', - 40 => 'GrahamCampbell\\Markdown\\MarkdownServiceProvider', - 41 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', - 42 => 'Torann\\Currency\\CurrencyServiceProvider', - 43 => 'Devio\\Pipedrive\\PipedriveServiceProvider', + 21 => 'Spatie\\Referer\\RefererServiceProvider', + 22 => 'Thomaswelton\\LaravelGravatar\\LaravelGravatarServiceProvider', + 23 => 'Torann\\Currency\\CurrencyServiceProvider', + 24 => 'Torann\\GeoIP\\GeoIPServiceProvider', + 25 => 'Yajra\\DataTables\\ButtonsServiceProvider', + 26 => 'Yajra\\DataTables\\EditorServiceProvider', + 27 => 'Yajra\\DataTables\\FractalServiceProvider', + 28 => 'Yajra\\DataTables\\HtmlServiceProvider', + 29 => 'Yajra\\DataTables\\DataTablesServiceProvider', + 30 => 'App\\Plugins\\Paypal\\ServiceProvider', + 31 => 'Bugsnag\\BugsnagLaravel\\BugsnagServiceProvider', + 32 => 'Arcanedev\\LogViewer\\LogViewerServiceProvider', + 33 => 'Torann\\GeoIP\\GeoIPServiceProvider', + 34 => 'App\\Providers\\AppServiceProvider', + 35 => 'App\\Providers\\AuthServiceProvider', + 36 => 'App\\Providers\\EventServiceProvider', + 37 => 'App\\Providers\\RouteServiceProvider', + 38 => 'Barryvdh\\DomPDF\\ServiceProvider', + 39 => 'Yajra\\DataTables\\HtmlServiceProvider', + 40 => 'Yajra\\DataTables\\DataTablesServiceProvider', + 41 => 'GrahamCampbell\\Markdown\\MarkdownServiceProvider', + 42 => 'Spatie\\Activitylog\\ActivitylogServiceProvider', + 43 => 'Torann\\Currency\\CurrencyServiceProvider', + 44 => 'Devio\\Pipedrive\\PipedriveServiceProvider', + 45 => 'Spatie\\Referer\\RefererServiceProvider', ], 'deferred' => [ 'Illuminate\\Broadcasting\\BroadcastManager' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider', diff --git a/composer.json b/composer.json index e5c7d15782..30ce285ea2 100644 --- a/composer.json +++ b/composer.json @@ -28,6 +28,7 @@ "razorpay/razorpay": "^2.2", "shvetsgroup/laravel-email-database-log": "^1.2", "spatie/laravel-activitylog": "^3.5.0", + "spatie/laravel-referer": "^1.5", "symfony/polyfill-iconv": "^1.8", "thomaswelton/laravel-gravatar": "~1.0", "torann/currency": "^1.0", diff --git a/composer.lock b/composer.lock index 43463a3b58..7fae77e4c6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ea93c26fd6374a87c40344cfc4c76351", + "content-hash": "2ad10df0d1229284508fc4d7a5a8099e", "packages": [ { "name": "anahkiasen/underscore-php", @@ -4168,6 +4168,63 @@ ], "time": "2019-04-15T11:01:50+00:00" }, + { + "name": "spatie/laravel-referer", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-referer.git", + "reference": "ce5845acc922ddc54cacc42f9beba2f37c725a31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-referer/zipball/ce5845acc922ddc54cacc42f9beba2f37c725a31", + "reference": "ce5845acc922ddc54cacc42f9beba2f37c725a31", + "shasum": "" + }, + "require": { + "illuminate/contracts": "~5.8.0|^6.0", + "illuminate/http": "~5.8.0|^6.0", + "illuminate/support": "~5.8.0|^6.0", + "php": "^7.2" + }, + "require-dev": { + "orchestra/testbench": "~3.8.0|^4.0", + "phpunit/phpunit": "^8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Referer\\RefererServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Referer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Keep a visitor's original referer in session", + "homepage": "https://github.com/spatie/laravel-referer", + "keywords": [ + "laravel-referer", + "spatie" + ], + "time": "2019-09-04T09:17:01+00:00" + }, { "name": "spatie/string", "version": "2.2.2", diff --git a/config/app.php b/config/app.php index 76918374c0..1629c5ba5e 100644 --- a/config/app.php +++ b/config/app.php @@ -14,7 +14,7 @@ 'name' => env('APP_NAME', 'Laravel'), - 'version' => 'v1.0.28', + 'version' => 'v1.0.30', /* |-------------------------------------------------------------------------- @@ -204,6 +204,7 @@ Spatie\Activitylog\ActivitylogServiceProvider::class, \Torann\Currency\CurrencyServiceProvider::class, Devio\Pipedrive\PipedriveServiceProvider::class, + Spatie\Referer\RefererServiceProvider::class, // Voerro\Laravel\VisitorTracker\VisitorTrackerServiceProvider::class, ], diff --git a/config/referer.php b/config/referer.php new file mode 100644 index 0000000000..39d849286a --- /dev/null +++ b/config/referer.php @@ -0,0 +1,17 @@ + 'referer', + + /* + * The sources used to determine the referer. + */ + 'sources' => [ + Spatie\Referer\Sources\UtmSource::class, + Spatie\Referer\Sources\RequestHeader::class, + ], +]; diff --git a/config/tracker.php b/config/tracker.php new file mode 100644 index 0000000000..1f5f5d015d --- /dev/null +++ b/config/tracker.php @@ -0,0 +1,374 @@ + true, + + /* + * Enable cache? + */ + 'cache_enabled' => true, + + /* + * Deffer booting for middleware use + */ + 'use_middleware' => true, + + /* + * Robots should be tracked? + */ + 'do_not_track_robots' => false, + + /* + * Which environments are not trackable? + */ + 'do_not_track_environments' => [ + // defaults to none + ], + + /* + * Which routes names are not trackable? + */ + 'do_not_track_routes' => [ + 'tracker.stats.*', + ], + + /* + * Which route paths are not trackable? + */ + 'do_not_track_paths' => [ + 'api/*', + ], + + /* + * The Do Not Track Ips is used to disable Tracker for some IP addresses: + * + * '127.0.0.1', '192.168.1.1' + * + * You can set ranges of IPs + * '192.168.0.1-192.168.0.100' + * + * And use net masks + * '10.0.0.0/32' + * '172.17.0.0/255.255.0.0' + */ + 'do_not_track_ips' => [ + '127.0.0.0/24', /// range 127.0.0.1 - 127.0.0.255 + ], + + /* + * When an IP is not trackable, show a message in log. + */ + 'log_untrackable_sessions' => true, + + /* + * Log every single access? + * + * The log table can become huge if your site is popular, but... + * + * Log table is also responsible for storing information on: + * + * - Routes and controller actions accessed + * - HTTP method used (GET, POST...) + * - Error log + * - URL queries (including values) + */ + 'log_enabled' => false, + + /* + * Log artisan commands? + */ + 'console_log_enabled' => false, + + /* + * Log SQL queries? + * + * Log must be enabled for this option to work. + */ + 'log_sql_queries' => false, + + /* + * If you prefer to store Tracker data on a different database or connection, + * you can set it here. + * + * To avoid SQL queries log recursion, create a different connection for Tracker, + * point it to the same database (or not) and forbid logging of this connection in + * do_not_log_sql_queries_connections. + */ + 'connection' => 'tracker', + + /* + * Forbid logging of SQL queries for some connections. + * + * To avoid recursion, you better ignore Tracker connection here. + * + * Please create a separate database connection for Tracker. It can hit + * the same database of your application, but the connection itself + * has to have a different name, so the package can ignore its own queries + * and avoid recursion. + * + */ + 'do_not_log_sql_queries_connections' => [ + 'tracker', + ], + + /* + * GeoIp2 database path. + * + * To get a fresh version of this file, use the command + * + * php artisan tracker:updategeoip + * + */ + + 'geoip_database_path' => __DIR__.'/geoip', //storage_path('geoip'), + + /* + * Also log SQL query bindings? + * + * Log must be enabled for this option to work. + */ + 'log_sql_queries_bindings' => false, + + /* + * Log events? + */ + 'log_events' => false, + + /* + * Which events do you want to log exactly? + */ + 'log_only_events' => [ + // defaults to logging all events + ], + + /* + * What are the names of the id columns on your system? + * + * 'id' is the most common, but if you have one or more different, + * please add them here in your preference order. + */ + 'id_columns_names' => [ + 'id', + ], + /* + * Do not log events for the following patterns. + * Strings accepts wildcards: + * + * eloquent.* + * + */ + 'do_not_log_events' => [ + 'illuminate.log', + 'eloquent.*', + 'router.*', + 'composing: *', + 'creating: *', + ], + + /* + * Do you wish to log Geo IP data? + * + * You will need to install the geoip package + * + * composer require "geoip/geoip":"~1.14" + * + * And remove the PHP module + * + * sudo apt-get purge php5-geoip + * + */ + 'log_geoip' => false, + + /* + * Do you wish to log the user agent? + */ + 'log_user_agents' => false, + + /* + * Do you wish to log your users? + */ + 'log_users' => false, + + /* + * Do you wish to log devices? + */ + 'log_devices' => false, + + /* + * Do you wish to log languages? + */ + 'log_languages' => false, + + /* + * Do you wish to log HTTP referers? + */ + 'log_referers' => false, + + /* + * Do you wish to log url paths? + */ + 'log_paths' => false, + + /* + * Do you wish to log url queries and query arguments? + */ + 'log_queries' => false, + + /* + * Do you wish to log routes and route parameters? + */ + 'log_routes' => false, + + /* + * Log errors and exceptions? + */ + 'log_exceptions' => false, + + /* + * A cookie may be created on your visitor device, so you can have information + * on everything made using that device on your site. * + */ + 'store_cookie_tracker' => false, + + /* + * If you are storing cookies, you better change it to a name you of your own. + */ + 'tracker_cookie_name' => 'please_change_this_cookie_name', + + /* + * Internal tracker session name. + */ + 'tracker_session_name' => 'tracker_session', + + /* + * ** IMPORTANT ** + * Change the user model to your own. + * If the model is under a different connection, be specific. + * ... + * class ModelName { + * protected $connection = 'mysql'; + * ... + */ + 'user_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\User', + + /* + * You can use your own model for every single table Tracker has. + */ + + 'session_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Session', + + 'log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Log', + + 'path_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Path', + + 'query_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Query', + + 'query_argument_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\QueryArgument', + + 'agent_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Agent', + + 'device_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Device', + + 'cookie_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Cookie', + + 'domain_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Domain', + + 'referer_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Referer', + + 'referer_search_term_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\RefererSearchTerm', + + 'route_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Route', + + 'route_path_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\RoutePath', + + 'route_path_parameter_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\RoutePathParameter', + + 'error_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Error', + + 'geoip_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\GeoIp', + + 'sql_query_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQuery', + + 'sql_query_binding_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryBinding', + + 'sql_query_binding_parameter_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryBindingParameter', + + 'sql_query_log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryLog', + + 'connection_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Connection', + + 'event_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Event', + + 'event_log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\EventLog', + + 'system_class_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SystemClass', + + 'language_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Language', + + /* + * Laravel internal variables on user authentication and login. + */ + 'authentication_ioc_binding' => ['auth'], // defaults to 'auth' in Illuminate\Support\Facades\Auth + + 'authentication_guards' => [], // defaults to [] + + 'authenticated_check_method' => 'check', // to Auth::check() + + 'authenticated_user_method' => 'user', // to Auth::user() + + 'authenticated_user_id_column' => 'id', // to Auth::user()->id + + 'authenticated_user_username_column' => 'email', // to Auth::user()->email + + /* + * Enable the Stats Panel? + */ + 'stats_panel_enabled' => false, + + /* + * Stats Panel routes before filter + * + */ + 'stats_routes_before_filter' => '', + + /* + * Stats Panel routes after filter + * + */ + 'stats_routes_after_filter' => '', + + /* + * Stats Panel routes middleware + * + */ + 'stats_routes_middleware' => 'web', + + /* + * Stats Panel template path + */ + 'stats_template_path' => '/templates/sb-admin-2', + + /* + * Stats Panel base uri. + * + * If your site url is http://wwww.mysite.com, then your stats page will be: + * + * http://wwww.mysite.com/stats + * + */ + 'stats_base_uri' => 'stats', + + /* + * Stats Panel layout view + */ + 'stats_layout' => 'pragmarx/tracker::layout', + + /* + * Stats Panel controllers namespace + */ + 'stats_controllers_namespace' => 'PragmaRX\Tracker\Vendor\Laravel\Controllers', +]; diff --git a/config/transform.php b/config/transform.php index d7826a0619..12e77e03f0 100644 --- a/config/transform.php +++ b/config/transform.php @@ -78,7 +78,17 @@ 'url' => '{{url}}', ], - 'manager_email' => [ + 'sales_manager_email' => [ + 'name' => '{{name}}', + 'manager_first_name' => '{{manager_first_name}}', + 'manager_last_name' => '{{manager_last_name}}', + 'manager_email' => '{{manager_email}}', + 'manager_code' => '{{manager_code}}', + 'manager_mobile' => '{{manager_mobile}}', + 'manager_skype' => '{{manager_skype}}', + ], + + 'account_manager_email' => [ 'name' => '{{name}}', 'manager_first_name' => '{{manager_first_name}}', 'manager_last_name' => '{{manager_last_name}}', diff --git a/database/migrations/2019_08_14_080250_add_account_manager_to_users_table.php b/database/migrations/2019_08_14_080250_add_account_manager_to_users_table.php new file mode 100644 index 0000000000..a787ad52b7 --- /dev/null +++ b/database/migrations/2019_08_14_080250_add_account_manager_to_users_table.php @@ -0,0 +1,32 @@ +string('account_manager')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('account_manager'); + }); + } +} diff --git a/database/migrations/2019_09_13_103243_add_referrer_to_users_table.php b/database/migrations/2019_09_13_103243_add_referrer_to_users_table.php new file mode 100644 index 0000000000..d269d583fc --- /dev/null +++ b/database/migrations/2019_09_13_103243_add_referrer_to_users_table.php @@ -0,0 +1,32 @@ +string('referrer')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('referrer'); + }); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index c92ff3b2a8..f243108f5a 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -242,7 +242,8 @@ public function run() TemplateType::create(['id' => 6, 'name' => 'invoice_mail']); TemplateType::create(['id' => 7, 'name' => 'order_mail']); TemplateType::create(['id' => 8, 'name' => 'download_mail']); - TemplateType::create(['id' => 9, 'name' => 'manager_email']); + TemplateType::create(['id' => 9, 'name' => 'sales_manager_email']); + TemplateType::create(['id' => 10, 'name' => 'account_manager_email']); } } @@ -720,7 +721,15 @@ public function run()

 

']); - Template::create(['id' => 9, 'name' => '[Faveo Helpdesk] Your New Account Manager', 'type' => 9, 'url'=>'null', 'data' =>'

Dear {{name}},

+ Template::create(['id' => 9, 'name' => '[Faveo Helpdesk] Your New Sales Manager', 'type' => 9, 'url'=>'null', 'data' =>'

Dear {{name}},

+

This is {{manager_first_name}} {{manager_last_name}}.

+

From now onwards I will be your one point of contact. I will followup with you as well as with our team. Please feel free to get in touch with me anytime if you have any issues with regards to your account. You can also add me on Skype. My ID is mentioned in my signature. It is a pleasure to have you on board and I look forward to effective conversations with you in future.

+

Hope you have a great day.

+

Regards,

+

{{manager_first_name}}{{manager_last_name}}

+

Sales Manager,
Faveo Helpdesk
Mobile :{{manager_code}} {{manager_mobile}}
Skype ID : {{manager_skype}}
Email : {{manager_email}}

']); + + Template::create(['id' => 10, 'name' => '[Faveo Helpdesk] Your New Account Manager', 'type' => 10, 'url'=>'null', 'data' =>'

Dear {{name}},

This is {{manager_first_name}} {{manager_last_name}}.

From now onwards I will be your one point of contact. I will followup with you as well as with our team. Please feel free to get in touch with me anytime if you have any issues with regards to your account. You can also add me on Skype. My ID is mentioned in my signature. It is a pleasure to have you on board and I look forward to effective conversations with you in future.

Hope you have a great day.

diff --git a/public/vendor/visitortracker/css/visitortracker.css b/public/vendor/visitortracker/css/visitortracker.css deleted file mode 100644 index 2b7b5b4f10..0000000000 --- a/public/vendor/visitortracker/css/visitortracker.css +++ /dev/null @@ -1,12 +0,0 @@ -.visitortracker-icon { - width: 1.3rem; -} - -.visitortracker-cell-break-words { - word-wrap: break-word; - word-break: break-all; -} - -.visitortracker-cell-nowrap { - white-space: nowrap; -} diff --git a/public/vendor/visitortracker/icons/browsers/chrome-mobile.png b/public/vendor/visitortracker/icons/browsers/chrome-mobile.png deleted file mode 100644 index bc651e5ad0..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/chrome-mobile.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/chrome.png b/public/vendor/visitortracker/icons/browsers/chrome.png deleted file mode 100644 index bc651e5ad0..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/chrome.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/chromium.png b/public/vendor/visitortracker/icons/browsers/chromium.png deleted file mode 100644 index 96ee2307fc..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/chromium.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/coc-coc.png b/public/vendor/visitortracker/icons/browsers/coc-coc.png deleted file mode 100644 index fa46e34067..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/coc-coc.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/curl.png b/public/vendor/visitortracker/icons/browsers/curl.png deleted file mode 100644 index f3208f671b..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/curl.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/edge.png b/public/vendor/visitortracker/icons/browsers/edge.png deleted file mode 100644 index 2f36fdf7ab..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/edge.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/facebook.png b/public/vendor/visitortracker/icons/browsers/facebook.png deleted file mode 100644 index 9c3a5a5ee9..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/facebook.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/firefox-mobile.png b/public/vendor/visitortracker/icons/browsers/firefox-mobile.png deleted file mode 100644 index b9d1f2c1ef..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/firefox-mobile.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/firefox.png b/public/vendor/visitortracker/icons/browsers/firefox.png deleted file mode 100644 index b9d1f2c1ef..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/firefox.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/go-http-client.png b/public/vendor/visitortracker/icons/browsers/go-http-client.png deleted file mode 100644 index 0aae1e6c4e..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/go-http-client.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/internet-explorer.png b/public/vendor/visitortracker/icons/browsers/internet-explorer.png deleted file mode 100644 index 8eab5894bd..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/internet-explorer.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/iron.png b/public/vendor/visitortracker/icons/browsers/iron.png deleted file mode 100644 index 6138c4d548..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/iron.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/microsoft-edge.png b/public/vendor/visitortracker/icons/browsers/microsoft-edge.png deleted file mode 100644 index 2f36fdf7ab..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/microsoft-edge.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/miui-browser.png b/public/vendor/visitortracker/icons/browsers/miui-browser.png deleted file mode 100644 index 982070fd52..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/miui-browser.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/mobile-safari.png b/public/vendor/visitortracker/icons/browsers/mobile-safari.png deleted file mode 100644 index fcbb4d11b1..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/mobile-safari.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/opera-mini.png b/public/vendor/visitortracker/icons/browsers/opera-mini.png deleted file mode 100644 index d9364f25bd..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/opera-mini.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/opera-mobile.png b/public/vendor/visitortracker/icons/browsers/opera-mobile.png deleted file mode 100644 index f2fbc06b25..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/opera-mobile.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/opera.png b/public/vendor/visitortracker/icons/browsers/opera.png deleted file mode 100644 index f2fbc06b25..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/opera.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/perl.png b/public/vendor/visitortracker/icons/browsers/perl.png deleted file mode 100644 index 8f902a76cf..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/perl.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/python-requests.png b/public/vendor/visitortracker/icons/browsers/python-requests.png deleted file mode 100644 index 6bdc68f505..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/python-requests.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/python-urllib.png b/public/vendor/visitortracker/icons/browsers/python-urllib.png deleted file mode 100644 index 6bdc68f505..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/python-urllib.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/safari.png b/public/vendor/visitortracker/icons/browsers/safari.png deleted file mode 100644 index fcbb4d11b1..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/safari.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/samsung-browser.png b/public/vendor/visitortracker/icons/browsers/samsung-browser.png deleted file mode 100644 index 32a7a65c8e..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/samsung-browser.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/uc-browser.png b/public/vendor/visitortracker/icons/browsers/uc-browser.png deleted file mode 100644 index f41eff920c..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/uc-browser.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/unk.png b/public/vendor/visitortracker/icons/browsers/unk.png deleted file mode 100644 index f7aa44ab62..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/unk.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/vivaldi.png b/public/vendor/visitortracker/icons/browsers/vivaldi.png deleted file mode 100644 index ce37672414..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/vivaldi.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/wechat.png b/public/vendor/visitortracker/icons/browsers/wechat.png deleted file mode 100644 index 5de3d8bf24..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/wechat.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/wget.png b/public/vendor/visitortracker/icons/browsers/wget.png deleted file mode 100644 index 9f0cd97681..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/wget.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/browsers/yandex-browser.png b/public/vendor/visitortracker/icons/browsers/yandex-browser.png deleted file mode 100644 index 5a27e346b6..0000000000 Binary files a/public/vendor/visitortracker/icons/browsers/yandex-browser.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/desktop.png b/public/vendor/visitortracker/icons/desktop.png deleted file mode 100644 index 61e6d4188c..0000000000 Binary files a/public/vendor/visitortracker/icons/desktop.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AD.png b/public/vendor/visitortracker/icons/flags/AD.png deleted file mode 100644 index 24efae590e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AE.png b/public/vendor/visitortracker/icons/flags/AE.png deleted file mode 100644 index 05acc83dea..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AF.png b/public/vendor/visitortracker/icons/flags/AF.png deleted file mode 100644 index 491039ba49..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AG.png b/public/vendor/visitortracker/icons/flags/AG.png deleted file mode 100644 index 08c171d2e1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AI.png b/public/vendor/visitortracker/icons/flags/AI.png deleted file mode 100644 index 4c6b36d47e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AL.png b/public/vendor/visitortracker/icons/flags/AL.png deleted file mode 100644 index 16e86a66f3..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AM.png b/public/vendor/visitortracker/icons/flags/AM.png deleted file mode 100644 index b1f25ba020..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AN.png b/public/vendor/visitortracker/icons/flags/AN.png deleted file mode 100644 index 8236bfde51..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AO.png b/public/vendor/visitortracker/icons/flags/AO.png deleted file mode 100644 index d0fb098a1a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AQ.png b/public/vendor/visitortracker/icons/flags/AQ.png deleted file mode 100644 index 52c2833058..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AQ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AR.png b/public/vendor/visitortracker/icons/flags/AR.png deleted file mode 100644 index bfa366f0be..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AS.png b/public/vendor/visitortracker/icons/flags/AS.png deleted file mode 100644 index 45c3ed064a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AT.png b/public/vendor/visitortracker/icons/flags/AT.png deleted file mode 100644 index bfe3827fae..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AU.png b/public/vendor/visitortracker/icons/flags/AU.png deleted file mode 100644 index 5f6e3254d7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AW.png b/public/vendor/visitortracker/icons/flags/AW.png deleted file mode 100644 index 007f032ee1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AX.png b/public/vendor/visitortracker/icons/flags/AX.png deleted file mode 100644 index e11d1f3d31..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AX.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/AZ.png b/public/vendor/visitortracker/icons/flags/AZ.png deleted file mode 100644 index ac0cbd8b9a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/AZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BA.png b/public/vendor/visitortracker/icons/flags/BA.png deleted file mode 100644 index d97b851509..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BB.png b/public/vendor/visitortracker/icons/flags/BB.png deleted file mode 100644 index c84c6ac905..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BB.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BD.png b/public/vendor/visitortracker/icons/flags/BD.png deleted file mode 100644 index 57cc9f61a3..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BE.png b/public/vendor/visitortracker/icons/flags/BE.png deleted file mode 100644 index 1473666732..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BF.png b/public/vendor/visitortracker/icons/flags/BF.png deleted file mode 100644 index dc297435db..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BG.png b/public/vendor/visitortracker/icons/flags/BG.png deleted file mode 100644 index ba98171b39..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BH.png b/public/vendor/visitortracker/icons/flags/BH.png deleted file mode 100644 index 38d195c182..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BI.png b/public/vendor/visitortracker/icons/flags/BI.png deleted file mode 100644 index 04c84ba862..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BJ.png b/public/vendor/visitortracker/icons/flags/BJ.png deleted file mode 100644 index 1e5582add1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BJ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BL.png b/public/vendor/visitortracker/icons/flags/BL.png deleted file mode 100644 index bdac5e09bb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BM.png b/public/vendor/visitortracker/icons/flags/BM.png deleted file mode 100644 index 5b989c1727..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BN.png b/public/vendor/visitortracker/icons/flags/BN.png deleted file mode 100644 index c793402012..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BO.png b/public/vendor/visitortracker/icons/flags/BO.png deleted file mode 100644 index f58824f75f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BR.png b/public/vendor/visitortracker/icons/flags/BR.png deleted file mode 100644 index 13bce838ff..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BS.png b/public/vendor/visitortracker/icons/flags/BS.png deleted file mode 100644 index 15e06827fc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BT.png b/public/vendor/visitortracker/icons/flags/BT.png deleted file mode 100644 index a83a1373b5..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BW.png b/public/vendor/visitortracker/icons/flags/BW.png deleted file mode 100644 index 45f9717e68..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BY.png b/public/vendor/visitortracker/icons/flags/BY.png deleted file mode 100644 index 8d6dc575a4..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/BZ.png b/public/vendor/visitortracker/icons/flags/BZ.png deleted file mode 100644 index f3fe26c6a6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/BZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CA.png b/public/vendor/visitortracker/icons/flags/CA.png deleted file mode 100644 index fd82ed4d95..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CC.png b/public/vendor/visitortracker/icons/flags/CC.png deleted file mode 100644 index 2c1d9e3e10..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CD.png b/public/vendor/visitortracker/icons/flags/CD.png deleted file mode 100644 index 502bc015e9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CF.png b/public/vendor/visitortracker/icons/flags/CF.png deleted file mode 100644 index 82029ea8cb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CG.png b/public/vendor/visitortracker/icons/flags/CG.png deleted file mode 100644 index 187226c9d1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CH.png b/public/vendor/visitortracker/icons/flags/CH.png deleted file mode 100644 index 368e22606e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CI.png b/public/vendor/visitortracker/icons/flags/CI.png deleted file mode 100644 index c7a3a60b69..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CK.png b/public/vendor/visitortracker/icons/flags/CK.png deleted file mode 100644 index 621c3ff562..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CL.png b/public/vendor/visitortracker/icons/flags/CL.png deleted file mode 100644 index eaa32e34e5..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CM.png b/public/vendor/visitortracker/icons/flags/CM.png deleted file mode 100644 index 95637214a6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CN.png b/public/vendor/visitortracker/icons/flags/CN.png deleted file mode 100644 index d75026aac0..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CO.png b/public/vendor/visitortracker/icons/flags/CO.png deleted file mode 100644 index 418df18b42..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CR.png b/public/vendor/visitortracker/icons/flags/CR.png deleted file mode 100644 index 6e725120ce..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CT.png b/public/vendor/visitortracker/icons/flags/CT.png deleted file mode 100644 index d9feacd924..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CU.png b/public/vendor/visitortracker/icons/flags/CU.png deleted file mode 100644 index 6430524de9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CV.png b/public/vendor/visitortracker/icons/flags/CV.png deleted file mode 100644 index cc3d4e8662..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CV.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CW.png b/public/vendor/visitortracker/icons/flags/CW.png deleted file mode 100644 index 78981b1257..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CX.png b/public/vendor/visitortracker/icons/flags/CX.png deleted file mode 100644 index b9384b2c96..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CX.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CY.png b/public/vendor/visitortracker/icons/flags/CY.png deleted file mode 100644 index 3ea9c9ef68..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/CZ.png b/public/vendor/visitortracker/icons/flags/CZ.png deleted file mode 100644 index b38296bd26..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/CZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DE.png b/public/vendor/visitortracker/icons/flags/DE.png deleted file mode 100644 index 07707aa0ff..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DJ.png b/public/vendor/visitortracker/icons/flags/DJ.png deleted file mode 100644 index 794e74c122..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DJ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DK.png b/public/vendor/visitortracker/icons/flags/DK.png deleted file mode 100644 index ef9f52f426..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DM.png b/public/vendor/visitortracker/icons/flags/DM.png deleted file mode 100644 index f7da4c87c9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DO.png b/public/vendor/visitortracker/icons/flags/DO.png deleted file mode 100644 index c34a32f38b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/DZ.png b/public/vendor/visitortracker/icons/flags/DZ.png deleted file mode 100644 index 2ea6765cc9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/DZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/EC.png b/public/vendor/visitortracker/icons/flags/EC.png deleted file mode 100644 index 26aaeaaf74..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/EC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/EE.png b/public/vendor/visitortracker/icons/flags/EE.png deleted file mode 100644 index c18c562a65..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/EE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/EG.png b/public/vendor/visitortracker/icons/flags/EG.png deleted file mode 100644 index 8cd5b82530..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/EG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/EH.png b/public/vendor/visitortracker/icons/flags/EH.png deleted file mode 100644 index 7b4eb90382..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/EH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ER.png b/public/vendor/visitortracker/icons/flags/ER.png deleted file mode 100644 index fa60b10e27..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ER.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ES.png b/public/vendor/visitortracker/icons/flags/ES.png deleted file mode 100644 index 3f7e39c1e4..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ES.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ET.png b/public/vendor/visitortracker/icons/flags/ET.png deleted file mode 100644 index e1388a0d54..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ET.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/EU.png b/public/vendor/visitortracker/icons/flags/EU.png deleted file mode 100644 index 4f8409474c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/EU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FI.png b/public/vendor/visitortracker/icons/flags/FI.png deleted file mode 100644 index 6eb7e94c99..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FJ.png b/public/vendor/visitortracker/icons/flags/FJ.png deleted file mode 100644 index fafdaae785..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FJ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FK.png b/public/vendor/visitortracker/icons/flags/FK.png deleted file mode 100644 index eb2dd3cc14..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FM.png b/public/vendor/visitortracker/icons/flags/FM.png deleted file mode 100644 index be7af70031..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FO.png b/public/vendor/visitortracker/icons/flags/FO.png deleted file mode 100644 index 7942cd99c1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/FR.png b/public/vendor/visitortracker/icons/flags/FR.png deleted file mode 100644 index ea101a5600..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/FR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GA.png b/public/vendor/visitortracker/icons/flags/GA.png deleted file mode 100644 index 1b69eafc62..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GB.png b/public/vendor/visitortracker/icons/flags/GB.png deleted file mode 100644 index 96a97f7f9b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GB.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GD.png b/public/vendor/visitortracker/icons/flags/GD.png deleted file mode 100644 index d4a05adb95..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GE.png b/public/vendor/visitortracker/icons/flags/GE.png deleted file mode 100644 index 20269135b6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GG.png b/public/vendor/visitortracker/icons/flags/GG.png deleted file mode 100644 index 8fff55533b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GH.png b/public/vendor/visitortracker/icons/flags/GH.png deleted file mode 100644 index 2bdcd4f8ae..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GI.png b/public/vendor/visitortracker/icons/flags/GI.png deleted file mode 100644 index 3b8725410c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GL.png b/public/vendor/visitortracker/icons/flags/GL.png deleted file mode 100644 index c7554a89b9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GM.png b/public/vendor/visitortracker/icons/flags/GM.png deleted file mode 100644 index a54ce953f2..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GN.png b/public/vendor/visitortracker/icons/flags/GN.png deleted file mode 100644 index dd795075ce..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GQ.png b/public/vendor/visitortracker/icons/flags/GQ.png deleted file mode 100644 index 1473173516..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GQ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GR.png b/public/vendor/visitortracker/icons/flags/GR.png deleted file mode 100644 index b7da9ccbfc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GS.png b/public/vendor/visitortracker/icons/flags/GS.png deleted file mode 100644 index a216c57e04..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GT.png b/public/vendor/visitortracker/icons/flags/GT.png deleted file mode 100644 index 6b28067089..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GU.png b/public/vendor/visitortracker/icons/flags/GU.png deleted file mode 100644 index e68eb53422..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GW.png b/public/vendor/visitortracker/icons/flags/GW.png deleted file mode 100644 index cdf103a951..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/GY.png b/public/vendor/visitortracker/icons/flags/GY.png deleted file mode 100644 index 1e0632e941..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/GY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/HK.png b/public/vendor/visitortracker/icons/flags/HK.png deleted file mode 100644 index 111a7a6774..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/HK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/HN.png b/public/vendor/visitortracker/icons/flags/HN.png deleted file mode 100644 index e76b187d2b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/HN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/HR.png b/public/vendor/visitortracker/icons/flags/HR.png deleted file mode 100644 index 355c4e873c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/HR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/HT.png b/public/vendor/visitortracker/icons/flags/HT.png deleted file mode 100644 index b958f5b091..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/HT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/HU.png b/public/vendor/visitortracker/icons/flags/HU.png deleted file mode 100644 index afee569337..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/HU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IC.png b/public/vendor/visitortracker/icons/flags/IC.png deleted file mode 100644 index b0090e4228..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ID.png b/public/vendor/visitortracker/icons/flags/ID.png deleted file mode 100644 index 7fb00cfbbb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ID.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IE.png b/public/vendor/visitortracker/icons/flags/IE.png deleted file mode 100644 index ab7af0c37e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IL.png b/public/vendor/visitortracker/icons/flags/IL.png deleted file mode 100644 index ce6937f97c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IM.png b/public/vendor/visitortracker/icons/flags/IM.png deleted file mode 100644 index c1f8bbb57c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IN.png b/public/vendor/visitortracker/icons/flags/IN.png deleted file mode 100644 index 9af807275d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IQ.png b/public/vendor/visitortracker/icons/flags/IQ.png deleted file mode 100644 index 79e7c2a031..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IQ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IR.png b/public/vendor/visitortracker/icons/flags/IR.png deleted file mode 100644 index df273f3076..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IS.png b/public/vendor/visitortracker/icons/flags/IS.png deleted file mode 100644 index 5e198a714f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/IT.png b/public/vendor/visitortracker/icons/flags/IT.png deleted file mode 100644 index 1ac67df347..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/IT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/JE.png b/public/vendor/visitortracker/icons/flags/JE.png deleted file mode 100644 index cc26d520b2..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/JE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/JM.png b/public/vendor/visitortracker/icons/flags/JM.png deleted file mode 100644 index 2c59808ca6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/JM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/JO.png b/public/vendor/visitortracker/icons/flags/JO.png deleted file mode 100644 index d0b87ec35e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/JO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/JP.png b/public/vendor/visitortracker/icons/flags/JP.png deleted file mode 100644 index fdd3f5ee03..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/JP.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KE.png b/public/vendor/visitortracker/icons/flags/KE.png deleted file mode 100644 index 306548665b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KG.png b/public/vendor/visitortracker/icons/flags/KG.png deleted file mode 100644 index 8ea6f5cf71..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KH.png b/public/vendor/visitortracker/icons/flags/KH.png deleted file mode 100644 index d752ca0718..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KI.png b/public/vendor/visitortracker/icons/flags/KI.png deleted file mode 100644 index c8dbdb01dc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KM.png b/public/vendor/visitortracker/icons/flags/KM.png deleted file mode 100644 index 8a46ac6182..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KN.png b/public/vendor/visitortracker/icons/flags/KN.png deleted file mode 100644 index a5c0ffb72a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KP.png b/public/vendor/visitortracker/icons/flags/KP.png deleted file mode 100644 index ee76832064..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KP.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KR.png b/public/vendor/visitortracker/icons/flags/KR.png deleted file mode 100644 index b3159e8289..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KW.png b/public/vendor/visitortracker/icons/flags/KW.png deleted file mode 100644 index f5ec795b06..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KY.png b/public/vendor/visitortracker/icons/flags/KY.png deleted file mode 100644 index dac58cde33..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/KZ.png b/public/vendor/visitortracker/icons/flags/KZ.png deleted file mode 100644 index 195d978906..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/KZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LA.png b/public/vendor/visitortracker/icons/flags/LA.png deleted file mode 100644 index 609436dac6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LB.png b/public/vendor/visitortracker/icons/flags/LB.png deleted file mode 100644 index a9ffdbc543..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LB.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LC.png b/public/vendor/visitortracker/icons/flags/LC.png deleted file mode 100644 index a2016b2b63..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LI.png b/public/vendor/visitortracker/icons/flags/LI.png deleted file mode 100644 index 791b27af55..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LK.png b/public/vendor/visitortracker/icons/flags/LK.png deleted file mode 100644 index ecc6f0d5c1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LR.png b/public/vendor/visitortracker/icons/flags/LR.png deleted file mode 100644 index 73aa178c4b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LS.png b/public/vendor/visitortracker/icons/flags/LS.png deleted file mode 100644 index 598747e0a2..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LT.png b/public/vendor/visitortracker/icons/flags/LT.png deleted file mode 100644 index 907db39cff..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LU.png b/public/vendor/visitortracker/icons/flags/LU.png deleted file mode 100644 index 4357a46bff..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LV.png b/public/vendor/visitortracker/icons/flags/LV.png deleted file mode 100644 index 1f8bdac1bb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LV.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/LY.png b/public/vendor/visitortracker/icons/flags/LY.png deleted file mode 100644 index 98f7a4ef2b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/LY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MA.png b/public/vendor/visitortracker/icons/flags/MA.png deleted file mode 100644 index e5b2280279..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MC.png b/public/vendor/visitortracker/icons/flags/MC.png deleted file mode 100644 index 7fb00cfbbb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MD.png b/public/vendor/visitortracker/icons/flags/MD.png deleted file mode 100644 index 7bd750c737..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ME.png b/public/vendor/visitortracker/icons/flags/ME.png deleted file mode 100644 index 113a2bc384..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ME.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MF.png b/public/vendor/visitortracker/icons/flags/MF.png deleted file mode 100644 index 7d88471635..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MG.png b/public/vendor/visitortracker/icons/flags/MG.png deleted file mode 100644 index f89c650986..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MH.png b/public/vendor/visitortracker/icons/flags/MH.png deleted file mode 100644 index a240d7046d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MK.png b/public/vendor/visitortracker/icons/flags/MK.png deleted file mode 100644 index 38bb51af75..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ML.png b/public/vendor/visitortracker/icons/flags/ML.png deleted file mode 100644 index 6e73f357da..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ML.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MM.png b/public/vendor/visitortracker/icons/flags/MM.png deleted file mode 100644 index ddaab40c5e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MN.png b/public/vendor/visitortracker/icons/flags/MN.png deleted file mode 100644 index 492d87e1f8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MO.png b/public/vendor/visitortracker/icons/flags/MO.png deleted file mode 100644 index a68ca49f06..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MP.png b/public/vendor/visitortracker/icons/flags/MP.png deleted file mode 100644 index 9ee84172b8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MP.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MQ.png b/public/vendor/visitortracker/icons/flags/MQ.png deleted file mode 100644 index 3905c2e0b8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MQ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MR.png b/public/vendor/visitortracker/icons/flags/MR.png deleted file mode 100644 index fb2ac8553e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MS.png b/public/vendor/visitortracker/icons/flags/MS.png deleted file mode 100644 index 9662beb6e7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MT.png b/public/vendor/visitortracker/icons/flags/MT.png deleted file mode 100644 index fcc27ab824..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MU.png b/public/vendor/visitortracker/icons/flags/MU.png deleted file mode 100644 index 176391ea95..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MV.png b/public/vendor/visitortracker/icons/flags/MV.png deleted file mode 100644 index c41df6d3cc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MV.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MW.png b/public/vendor/visitortracker/icons/flags/MW.png deleted file mode 100644 index b8bd61cf35..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MX.png b/public/vendor/visitortracker/icons/flags/MX.png deleted file mode 100644 index 7bc656cb7e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MX.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MY.png b/public/vendor/visitortracker/icons/flags/MY.png deleted file mode 100644 index 50bc61d822..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/MZ.png b/public/vendor/visitortracker/icons/flags/MZ.png deleted file mode 100644 index 5b677a8d1a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/MZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NA.png b/public/vendor/visitortracker/icons/flags/NA.png deleted file mode 100644 index 879cbdf44f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NC.png b/public/vendor/visitortracker/icons/flags/NC.png deleted file mode 100644 index 1f53a6a9c4..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NE.png b/public/vendor/visitortracker/icons/flags/NE.png deleted file mode 100644 index c77a343697..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NF.png b/public/vendor/visitortracker/icons/flags/NF.png deleted file mode 100644 index 96f35b0162..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NG.png b/public/vendor/visitortracker/icons/flags/NG.png deleted file mode 100644 index 8c175ed6cc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NI.png b/public/vendor/visitortracker/icons/flags/NI.png deleted file mode 100644 index bebf90a01f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NL.png b/public/vendor/visitortracker/icons/flags/NL.png deleted file mode 100644 index f1eece1db1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NO.png b/public/vendor/visitortracker/icons/flags/NO.png deleted file mode 100644 index e5102023a7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NP.png b/public/vendor/visitortracker/icons/flags/NP.png deleted file mode 100644 index bbfef28bcd..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NP.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NR.png b/public/vendor/visitortracker/icons/flags/NR.png deleted file mode 100644 index 8c1529ddaa..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NU.png b/public/vendor/visitortracker/icons/flags/NU.png deleted file mode 100644 index 17e42beb90..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/NZ.png b/public/vendor/visitortracker/icons/flags/NZ.png deleted file mode 100644 index 93e9267c77..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/NZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/OM.png b/public/vendor/visitortracker/icons/flags/OM.png deleted file mode 100644 index 277a288f62..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/OM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PA.png b/public/vendor/visitortracker/icons/flags/PA.png deleted file mode 100644 index b1e97f8849..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PE.png b/public/vendor/visitortracker/icons/flags/PE.png deleted file mode 100644 index 48c1203717..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PF.png b/public/vendor/visitortracker/icons/flags/PF.png deleted file mode 100644 index 40e5210926..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PG.png b/public/vendor/visitortracker/icons/flags/PG.png deleted file mode 100644 index 98b81b1de4..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PH.png b/public/vendor/visitortracker/icons/flags/PH.png deleted file mode 100644 index 63c97db106..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PK.png b/public/vendor/visitortracker/icons/flags/PK.png deleted file mode 100644 index dddac0aa26..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PL.png b/public/vendor/visitortracker/icons/flags/PL.png deleted file mode 100644 index f29c716820..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PN.png b/public/vendor/visitortracker/icons/flags/PN.png deleted file mode 100644 index ecc46daea8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PR.png b/public/vendor/visitortracker/icons/flags/PR.png deleted file mode 100644 index 42796fe8fd..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PS.png b/public/vendor/visitortracker/icons/flags/PS.png deleted file mode 100644 index b7cbe1c349..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PT.png b/public/vendor/visitortracker/icons/flags/PT.png deleted file mode 100644 index abdbf31ff7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PW.png b/public/vendor/visitortracker/icons/flags/PW.png deleted file mode 100644 index ff3988638f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/PY.png b/public/vendor/visitortracker/icons/flags/PY.png deleted file mode 100644 index 04f5d9a982..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/PY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/QA.png b/public/vendor/visitortracker/icons/flags/QA.png deleted file mode 100644 index 3bf92193ba..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/QA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/RE.png b/public/vendor/visitortracker/icons/flags/RE.png deleted file mode 100644 index b3fd4f212f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/RE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/RO.png b/public/vendor/visitortracker/icons/flags/RO.png deleted file mode 100644 index 5968cb16cd..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/RO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/RS.png b/public/vendor/visitortracker/icons/flags/RS.png deleted file mode 100644 index 7b3c8237f7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/RS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/RU.png b/public/vendor/visitortracker/icons/flags/RU.png deleted file mode 100644 index e87d75884c..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/RU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/RW.png b/public/vendor/visitortracker/icons/flags/RW.png deleted file mode 100644 index 4898fcc9e5..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/RW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SA.png b/public/vendor/visitortracker/icons/flags/SA.png deleted file mode 100644 index 87c67b09dc..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SB.png b/public/vendor/visitortracker/icons/flags/SB.png deleted file mode 100644 index 43b9068c71..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SB.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SC.png b/public/vendor/visitortracker/icons/flags/SC.png deleted file mode 100644 index f3d60e93e7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SD.png b/public/vendor/visitortracker/icons/flags/SD.png deleted file mode 100644 index 6d364dee75..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SE.png b/public/vendor/visitortracker/icons/flags/SE.png deleted file mode 100644 index 3dbe1ec417..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SG.png b/public/vendor/visitortracker/icons/flags/SG.png deleted file mode 100644 index 27e950c900..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SH.png b/public/vendor/visitortracker/icons/flags/SH.png deleted file mode 100644 index dd89323ea8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SI.png b/public/vendor/visitortracker/icons/flags/SI.png deleted file mode 100644 index 2a52b54268..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SK.png b/public/vendor/visitortracker/icons/flags/SK.png deleted file mode 100644 index a1540e17b6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SL.png b/public/vendor/visitortracker/icons/flags/SL.png deleted file mode 100644 index d36d704c92..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SM.png b/public/vendor/visitortracker/icons/flags/SM.png deleted file mode 100644 index 944ba860ce..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SN.png b/public/vendor/visitortracker/icons/flags/SN.png deleted file mode 100644 index 7c90de1ab7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SO.png b/public/vendor/visitortracker/icons/flags/SO.png deleted file mode 100644 index a3f52cf9a6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SR.png b/public/vendor/visitortracker/icons/flags/SR.png deleted file mode 100644 index 973655f071..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SS.png b/public/vendor/visitortracker/icons/flags/SS.png deleted file mode 100644 index 15ff92b470..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ST.png b/public/vendor/visitortracker/icons/flags/ST.png deleted file mode 100644 index c5952d39e7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ST.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SV.png b/public/vendor/visitortracker/icons/flags/SV.png deleted file mode 100644 index 36c9f03ca5..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SV.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SX.png b/public/vendor/visitortracker/icons/flags/SX.png deleted file mode 100644 index 5585b52e4d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SX.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SY.png b/public/vendor/visitortracker/icons/flags/SY.png deleted file mode 100644 index 897c6b3e62..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/SZ.png b/public/vendor/visitortracker/icons/flags/SZ.png deleted file mode 100644 index 7889710a11..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/SZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TC.png b/public/vendor/visitortracker/icons/flags/TC.png deleted file mode 100644 index 5b794ec4e6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TD.png b/public/vendor/visitortracker/icons/flags/TD.png deleted file mode 100644 index 214cb0dde8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TD.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TF.png b/public/vendor/visitortracker/icons/flags/TF.png deleted file mode 100644 index 17bd6c3932..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TG.png b/public/vendor/visitortracker/icons/flags/TG.png deleted file mode 100644 index 66eae0f162..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TH.png b/public/vendor/visitortracker/icons/flags/TH.png deleted file mode 100644 index eb652f2803..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TH.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TJ.png b/public/vendor/visitortracker/icons/flags/TJ.png deleted file mode 100644 index 7591f28c45..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TJ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TK.png b/public/vendor/visitortracker/icons/flags/TK.png deleted file mode 100644 index e8b3855a1b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TK.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TL.png b/public/vendor/visitortracker/icons/flags/TL.png deleted file mode 100644 index b7db4ebd02..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TL.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TM.png b/public/vendor/visitortracker/icons/flags/TM.png deleted file mode 100644 index 9d82abc926..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TN.png b/public/vendor/visitortracker/icons/flags/TN.png deleted file mode 100644 index 92ec1ef18d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TO.png b/public/vendor/visitortracker/icons/flags/TO.png deleted file mode 100644 index e1d96b3a7d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TO.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TR.png b/public/vendor/visitortracker/icons/flags/TR.png deleted file mode 100644 index 838049d0e6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TR.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TT.png b/public/vendor/visitortracker/icons/flags/TT.png deleted file mode 100644 index ca612a660b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TV.png b/public/vendor/visitortracker/icons/flags/TV.png deleted file mode 100644 index 94839b18b1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TV.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TW.png b/public/vendor/visitortracker/icons/flags/TW.png deleted file mode 100644 index 044f0fadfd..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/TZ.png b/public/vendor/visitortracker/icons/flags/TZ.png deleted file mode 100644 index e034a044b8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/TZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/UA.png b/public/vendor/visitortracker/icons/flags/UA.png deleted file mode 100644 index 115de4bdf9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/UA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/UG.png b/public/vendor/visitortracker/icons/flags/UG.png deleted file mode 100644 index 5a6be882a0..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/UG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/US.png b/public/vendor/visitortracker/icons/flags/US.png deleted file mode 100644 index 57f3cbe654..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/US.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/UY.png b/public/vendor/visitortracker/icons/flags/UY.png deleted file mode 100644 index 1cae642921..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/UY.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/UZ.png b/public/vendor/visitortracker/icons/flags/UZ.png deleted file mode 100644 index a29cd4e10f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/UZ.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VA.png b/public/vendor/visitortracker/icons/flags/VA.png deleted file mode 100644 index 1fd41bc7d9..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VC.png b/public/vendor/visitortracker/icons/flags/VC.png deleted file mode 100644 index 28aad72a6d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VC.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VE.png b/public/vendor/visitortracker/icons/flags/VE.png deleted file mode 100644 index 82818894da..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VG.png b/public/vendor/visitortracker/icons/flags/VG.png deleted file mode 100644 index 470335ec9a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VG.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VI.png b/public/vendor/visitortracker/icons/flags/VI.png deleted file mode 100644 index 733e515902..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VI.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VN.png b/public/vendor/visitortracker/icons/flags/VN.png deleted file mode 100644 index 4a715d7437..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VN.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/VU.png b/public/vendor/visitortracker/icons/flags/VU.png deleted file mode 100644 index 10591b5d11..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/VU.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/WF.png b/public/vendor/visitortracker/icons/flags/WF.png deleted file mode 100644 index 0c47a29eb2..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/WF.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/WS.png b/public/vendor/visitortracker/icons/flags/WS.png deleted file mode 100644 index 3942e2041f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/WS.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/YE.png b/public/vendor/visitortracker/icons/flags/YE.png deleted file mode 100644 index 20c417acc8..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/YE.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/YT.png b/public/vendor/visitortracker/icons/flags/YT.png deleted file mode 100644 index 1ea71d448f..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/YT.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ZA.png b/public/vendor/visitortracker/icons/flags/ZA.png deleted file mode 100644 index c426db698a..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ZA.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ZM.png b/public/vendor/visitortracker/icons/flags/ZM.png deleted file mode 100644 index 8c876c6574..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ZM.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/ZW.png b/public/vendor/visitortracker/icons/flags/ZW.png deleted file mode 100644 index 47e8aa74e5..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/ZW.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_abkhazia.png b/public/vendor/visitortracker/icons/flags/_abkhazia.png deleted file mode 100644 index 9f0c76e9e1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_abkhazia.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_basque-country.png b/public/vendor/visitortracker/icons/flags/_basque-country.png deleted file mode 100644 index 22da9dd86b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_basque-country.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_british-antarctic-territory.png b/public/vendor/visitortracker/icons/flags/_british-antarctic-territory.png deleted file mode 100644 index 550bdfd5ca..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_british-antarctic-territory.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_england.png b/public/vendor/visitortracker/icons/flags/_england.png deleted file mode 100644 index d509e609eb..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_england.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_kosovo.png b/public/vendor/visitortracker/icons/flags/_kosovo.png deleted file mode 100644 index b49259538b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_kosovo.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_nagorno-karabakh.png b/public/vendor/visitortracker/icons/flags/_nagorno-karabakh.png deleted file mode 100644 index 65fc50c244..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_nagorno-karabakh.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_nato.png b/public/vendor/visitortracker/icons/flags/_nato.png deleted file mode 100644 index 7d59ce937d..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_nato.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_northern-cyprus.png b/public/vendor/visitortracker/icons/flags/_northern-cyprus.png deleted file mode 100644 index e6deb7ba5e..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_northern-cyprus.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_scotland.png b/public/vendor/visitortracker/icons/flags/_scotland.png deleted file mode 100644 index 15ef0d85f1..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_scotland.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_somaliland.png b/public/vendor/visitortracker/icons/flags/_somaliland.png deleted file mode 100644 index d1123c5e3b..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_somaliland.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_south-ossetia.png b/public/vendor/visitortracker/icons/flags/_south-ossetia.png deleted file mode 100644 index 4fba485878..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_south-ossetia.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/_wales.png b/public/vendor/visitortracker/icons/flags/_wales.png deleted file mode 100644 index c33f9f43c6..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/_wales.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/flags/unknown.png b/public/vendor/visitortracker/icons/flags/unknown.png deleted file mode 100644 index 5b81f01fc7..0000000000 Binary files a/public/vendor/visitortracker/icons/flags/unknown.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/login_attempt.png b/public/vendor/visitortracker/icons/login_attempt.png deleted file mode 100644 index 04482e12ed..0000000000 Binary files a/public/vendor/visitortracker/icons/login_attempt.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/mobile.png b/public/vendor/visitortracker/icons/mobile.png deleted file mode 100644 index 9f0da36031..0000000000 Binary files a/public/vendor/visitortracker/icons/mobile.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/android.png b/public/vendor/visitortracker/icons/os/android.png deleted file mode 100644 index 92b6e982dd..0000000000 Binary files a/public/vendor/visitortracker/icons/os/android.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/chrome-os.png b/public/vendor/visitortracker/icons/os/chrome-os.png deleted file mode 100644 index bc651e5ad0..0000000000 Binary files a/public/vendor/visitortracker/icons/os/chrome-os.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/freebsd.png b/public/vendor/visitortracker/icons/os/freebsd.png deleted file mode 100644 index 7c5576a89d..0000000000 Binary files a/public/vendor/visitortracker/icons/os/freebsd.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/ios.png b/public/vendor/visitortracker/icons/os/ios.png deleted file mode 100644 index 19b0a616fe..0000000000 Binary files a/public/vendor/visitortracker/icons/os/ios.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/linux.png b/public/vendor/visitortracker/icons/os/linux.png deleted file mode 100644 index 3df51d2a07..0000000000 Binary files a/public/vendor/visitortracker/icons/os/linux.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/mac.png b/public/vendor/visitortracker/icons/os/mac.png deleted file mode 100644 index 6a4cc62d4f..0000000000 Binary files a/public/vendor/visitortracker/icons/os/mac.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/unix.png b/public/vendor/visitortracker/icons/os/unix.png deleted file mode 100644 index 44c82c7b0e..0000000000 Binary files a/public/vendor/visitortracker/icons/os/unix.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/unk.png b/public/vendor/visitortracker/icons/os/unk.png deleted file mode 100644 index f7aa44ab62..0000000000 Binary files a/public/vendor/visitortracker/icons/os/unk.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/os/windows.png b/public/vendor/visitortracker/icons/os/windows.png deleted file mode 100644 index 4f5eeb40d6..0000000000 Binary files a/public/vendor/visitortracker/icons/os/windows.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/spider.png b/public/vendor/visitortracker/icons/spider.png deleted file mode 100644 index 6ae6e5ff5c..0000000000 Binary files a/public/vendor/visitortracker/icons/spider.png and /dev/null differ diff --git a/public/vendor/visitortracker/icons/user.png b/public/vendor/visitortracker/icons/user.png deleted file mode 100644 index 6d1e0524a3..0000000000 Binary files a/public/vendor/visitortracker/icons/user.png and /dev/null differ diff --git a/resources/lang/en/message.php b/resources/lang/en/message.php index e32cdcf359..c689a8e732 100644 --- a/resources/lang/en/message.php +++ b/resources/lang/en/message.php @@ -625,11 +625,17 @@ * License */ - 'create-license-type' => 'Create New License Type', - 'edit-license-type' => 'Edit License Type', - 'license-type' => 'License Type', - 'license-type-name' => 'License Type Name', - 'add-permissions' => 'Add Permissions', - 'permissions' => 'Permissions', - + 'create-license-type' => 'Create New License Type', + 'edit-license-type' => 'Edit License Type', + 'license-type' => 'License Type', + 'license-type-name' => 'License Type Name', + 'add-permissions' => 'Add Permissions', + 'permissions' => 'Permissions', + 'installation_limit' => 'Installation Limit', + 'system_account_manager' => 'System Account Manager(s)', + 'replace_with' => 'Replace with...', + 'account_man_replaced_success' => 'Account Manager replaced successfully', + 'replace' => 'Replace', + 'system_sales_manager' => 'System Sales Manager(s)', + 'sales_man_replaced_success' => 'Sales Manager replaced successfully', ]; diff --git a/resources/views/themes/default1/common/admin-settings.blade.php b/resources/views/themes/default1/common/admin-settings.blade.php index 3039e085ee..7af87da273 100644 --- a/resources/views/themes/default1/common/admin-settings.blade.php +++ b/resources/views/themes/default1/common/admin-settings.blade.php @@ -131,6 +131,19 @@
+
+
+ +

System Managers

+
+
+
@@ -373,10 +386,20 @@ - - +
+
+ +

Country List

+
+
- + diff --git a/resources/views/themes/default1/common/country-count.blade.php b/resources/views/themes/default1/common/country-count.blade.php new file mode 100644 index 0000000000..ba77c1ec83 --- /dev/null +++ b/resources/views/themes/default1/common/country-count.blade.php @@ -0,0 +1,116 @@ +@extends('themes.default1.layouts.master') +@section('title') +Settings +@stop +@section('content-header') +

+Country List +

+ +@stop + +@section('content') + +
+ +
+ @if (count($errors) > 0) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + + @if(Session::has('success')) +
+ + {{Session::get('success')}} +
+ @endif + + + @if(Session::has('fails')) +
+ + {{Lang::get('message.alert')}}! {{Lang::get('message.failed')}}. + + {{Session::get('fails')}} +
+ @endif +
+ +
+ +
+
+
+ + + + + + + + + + +
CountryUser Count
+
+
+
+
+ + + + + +@stop + + + + + + + + + + + diff --git a/resources/views/themes/default1/common/system-managers.blade.php b/resources/views/themes/default1/common/system-managers.blade.php new file mode 100644 index 0000000000..cbb63fd90d --- /dev/null +++ b/resources/views/themes/default1/common/system-managers.blade.php @@ -0,0 +1,321 @@ +@extends('themes.default1.layouts.master') +@section('title') +Api Key +@stop +@section('content-header') + + + + + +

+System Managers +

+ +@stop +@section('content') +
+ +
+ @if (count($errors) > 0) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+
+
+
+
+
+ @if(Session::has('success')) +
+ + + {{Session::get('success')}} +
+ @endif + + @if(Session::has('fails')) +
+ + {{Lang::get('message.alert')}}! {{Lang::get('message.failed')}}. + + {{Session::get('fails')}} +
+ @endif + + + +
+ + + + +
+ +
+ +
+ +
+
+
+ {!! Form::label('user',Lang::get('message.system_account_manager'),['class'=>'required']) !!} + + +
+ +
+ + {!! Form::label('replace_with',Lang::get('message.replace_with'),['class'=>'required']) !!} + + + {!! Form::select('account_manager', [Lang::get('User')=>$users],null,['multiple'=>true,'class'=>"form-control select2" ,'id'=>"users",'required','style'=>"width:100%!important",'oninvalid'=>"setCustomValidity('Please Select Client')", + 'onchange'=>"setCustomValidity('')"]) !!} + + +
+ +
+
+ +
+
+ + +
+
+
+
+ {!! Form::label('user',Lang::get('message.system_sales_manager'),['class'=>'required']) !!} + + +
+ +
+ + {!! Form::label('replace_with',Lang::get('message.replace_with'),['class'=>'required']) !!} + + + {!! Form::select('sales_manager', [Lang::get('User')=>$users],null,['multiple'=>true,'class'=>"form-control select2" ,'id'=>"sales",'required','style'=>"width:100%!important",'oninvalid'=>"setCustomValidity('Please Select Client')", + 'onchange'=>"setCustomValidity('')"]) !!} + + +
+ +
+
+ +
+ + +
+ {!! Form::close() !!} + +
+
+
+ + + @stop \ No newline at end of file diff --git a/resources/views/themes/default1/order/installationLimit.blade.php b/resources/views/themes/default1/order/installationLimit.blade.php new file mode 100644 index 0000000000..f679082f07 --- /dev/null +++ b/resources/views/themes/default1/order/installationLimit.blade.php @@ -0,0 +1,32 @@ + +@section('script') + +@stop \ No newline at end of file diff --git a/resources/views/themes/default1/order/show.blade.php b/resources/views/themes/default1/order/show.blade.php index 910c338db2..c48ae2c196 100644 --- a/resources/views/themes/default1/order/show.blade.php +++ b/resources/views/themes/default1/order/show.blade.php @@ -95,15 +95,15 @@
@include('themes.default1.front.clients.reissue-licenseModal') @include('themes.default1.front.clients.domainRestriction') + @include('themes.default1.order.installationLimit') @include('themes.default1.order.update_ends-modal') - @include('themes.default1.order.license_end-modal') - @include('themes.default1.order.support_end-modal') + @include('themes.default1.order.license_end-modal') + @include('themes.default1.order.support_end-modal')

- - License Details + License Details

@@ -146,7 +146,36 @@ @endif + Installation Limit: + + {{$noOfAllowedInstallation}} +   + Edit + + + + + + Installation Preference: + @if(Session::has('success')) +
+ + Success! + + {!!Session::get('success')!!} +
+ @endif + + {!! Form::open(['url' => url('ip-or-domain'),'method'=>'post']) !!} + + {{ Form::radio('domain', 0 , ($getInstallPreference == '0')) }} IP      + {{ Form::radio('domain', 1 , ($getInstallPreference == '1')) }} Domain + + {!! Form::close() !!} + + @endif + + + +/* +* Update Support Expiry date + */ + + $("#installlimit").click(function(){ + var oldlimit = $(this).attr('install-limit'); + var orderId = $(this).attr('limit-id'); + $("#limitModel").modal(); + $("#order5").val(orderId); + $("#limitnumber").val(oldlimit); + }); + + //When Submit Button is Clicked in Modal Popup, passvalue through Ajax + $("#installLimitSave").on('click',function(){ + var newlimit = $("#limitnumber").val(); + var orderId = $("#order5").val(); + $.ajax({ + type: "get", + data: {'orderid': orderId , 'limit': newlimit}, + url: "{{url('edit-installation-limit')}}", + beforeSend: function () { + $('#response5').html( ""); + + }, + success: function (response) { + if (response.message =='success') { + var result = '
Success! '+response.update+'
'; + $('#response5').html(result); + $('#response5').css('color', 'green'); + setTimeout(function(){ + window.location.reload(); + },3000); + } + }, + error: function(response) { + var myJSON = JSON.parse(response.responseText).errors; + var html = '
Whoops! Something went wrong

    '; + for (var key in myJSON) + { + html += '
  • ' + myJSON[key][0] + '
  • ' + } + html += '
'; + $('#error5').show(); + $('#response5').html(''); + document.getElementById('error5').innerHTML = html; + } + }) + }); + @stop diff --git a/resources/views/themes/default1/user/client/create.blade.php b/resources/views/themes/default1/user/client/create.blade.php index a3b4028506..808d37dc85 100644 --- a/resources/views/themes/default1/user/client/create.blade.php +++ b/resources/views/themes/default1/user/client/create.blade.php @@ -179,7 +179,7 @@
{!! Form::label('position','Position') !!} - {!! Form::select('position',[''=>'Choose','manager'=>'Manager'],null,['class' => 'form-control']) !!} + {!! Form::select('position',[''=>'Choose','manager'=>'Sales Manager','acc_manager'=>'Account Manager'],null,['class' => 'form-control']) !!}
has('manager') ? 'has-error' : '' }}"> - {!! Form::label('manager','Manager') !!} + {!! Form::label('manager','Sales Manager') !!}
+
+ + {!! Form::label('manager','Account Manager') !!} + + +
diff --git a/resources/views/themes/default1/user/client/edit.blade.php b/resources/views/themes/default1/user/client/edit.blade.php index 5bf62dc5b6..4cd6daefeb 100644 --- a/resources/views/themes/default1/user/client/edit.blade.php +++ b/resources/views/themes/default1/user/client/edit.blade.php @@ -173,7 +173,7 @@
{!! Form::label('position','Position') !!} - {!! Form::select('position',['Choose'=>'Choose','manager'=>'Manager'],null,['class' => 'form-control']) !!} + {!! Form::select('position',['Choose'=>'Choose','manager'=>'Sales Manager','account_manager'=>'Account Manager'],null,['class' => 'form-control']) !!}
role=='user')
- {!! Form::label('manager','Manager') !!} + {!! Form::label('manager','Sales Manager') !!} {!! Form::select('manager',[''=>'Select','Managers'=>$managers],null,['class' => 'form-control']) !!} +
+ +
+ + {!! Form::label('account_manager','Account Manager') !!} + {!! Form::select('account_manager',[''=>'Select','Managers'=>$acc_managers],null,['class' => 'form-control']) !!} +
@endif diff --git a/resources/views/themes/default1/user/client/index.blade.php b/resources/views/themes/default1/user/client/index.blade.php index 0058f0ee54..9d9349ded5 100644 --- a/resources/views/themes/default1/user/client/index.blade.php +++ b/resources/views/themes/default1/user/client/index.blade.php @@ -140,7 +140,8 @@ {!! Form::label('Position','Position') !!} @@ -350,7 +351,9 @@ function checking(e){ success: function (data) { $('#gif').html(''); $('#response').html(data); - location.reload(); + setTimeout(function(){ + window.location.reload(); + },5000); } }) } diff --git a/resources/views/themes/default1/user/client/show.blade.php b/resources/views/themes/default1/user/client/show.blade.php index f299d8aea1..5a4bbfc368 100644 --- a/resources/views/themes/default1/user/client/show.blade.php +++ b/resources/views/themes/default1/user/client/show.blade.php @@ -559,6 +559,11 @@ function checkingpayment(e){ @endif +
  • + + Referrer : + +
  • @@ -961,6 +966,7 @@ function delCommentFunction() { $('.clientcompany').html((response.client).company_type); $('.clientcomsize').html((response.client).company_size); $('.clientip').html((response.client).ip); + $('.referrer').html((response.client).referrer); $('.clientskype').html((response.client).skype); $('.clientmanager').val((response.client).clientmanager); } diff --git a/routes/web.php b/routes/web.php index 8df25594b9..745b5a9961 100644 --- a/routes/web.php +++ b/routes/web.php @@ -161,6 +161,10 @@ Route::get('mailchimp-prod-status', 'Common\BaseSettingsController@updateMailchimpProductStatus')->name('mailchimp-prod-status'); Route::get('mailchimp-paid-status', 'Common\BaseSettingsController@updateMailchimpIsPaidStatus')->name('mailchimp-paid-status'); Route::get('updatedomainCheckDetails', 'Common\BaseSettingsController@updatedomainCheckDetails')->name('updatedomainCheckDetails'); + Route::get('system-managers', 'Common\SystemManagerController@getSystemManagers')->name('system-managers'); + Route::get('search-admins', 'Common\SystemManagerController@searchAdmin')->name('search-admins'); + Route::post('replace-acc-manager', 'Common\SystemManagerController@replaceAccountManager')->name('replace-acc-manager'); + Route::post('replace-sales-manager', 'Common\SystemManagerController@replaceSalesManager')->name('replace-sales-manager'); /* * Client @@ -319,6 +323,8 @@ Route::get('edit-update-expiry', 'Order\BaseOrderController@editUpdateExpiry'); Route::get('edit-license-expiry', 'Order\BaseOrderController@editLicenseExpiry'); Route::get('edit-support-expiry', 'Order\BaseOrderController@editSupportExpiry'); + Route::get('edit-installation-limit', 'Order\BaseOrderController@editInstallationLimit'); + Route::post('ip-or-domain', 'Order\BaseOrderController@installOnIpOrDomain'); /* * Groups */ @@ -498,8 +504,8 @@ Route::get('get-code', 'WelcomeController@getCode'); Route::get('get-currency', 'WelcomeController@getCurrency'); - - Route::get('country-count', 'WelcomeController@countryCount'); + Route::get('get-country', 'WelcomeController@getCountry'); + Route::get('country-count', 'WelcomeController@countryCount')->name('country-count'); /* * Api diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 62b66cd711..0607da59ad 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -7,6 +7,7 @@ return array( 'ActivityLogDelSeeder' => $baseDir . '/database/seeds/DatabaseSeeder.php', + 'AddAccountManagerToUsersTable' => $baseDir . '/database/migrations/2019_08_14_080250_add_account_manager_to_users_table.php', 'AddAgentsToInvoiceItems' => $baseDir . '/database/migrations/2019_01_18_045523_add_agents_to_invoice_items.php', 'AddAllowDomainCheckToStatusSettings' => $baseDir . '/database/migrations/2019_07_08_095503_add_allow_domain_check_to_status_settings.php', 'AddAmtToCreditToPayments' => $baseDir . '/database/migrations/2018_08_21_094543_add_amt_to_credit_to_payments.php', @@ -44,6 +45,7 @@ 'AddPerpetualLicenseToProductsTable' => $baseDir . '/database/migrations/2018_11_19_190929_add_perpetual_license_to_products_table.php', 'AddProductQuantityToPlanPrices' => $baseDir . '/database/migrations/2019_01_08_060351_add_product_quantity_to_plan_prices.php', 'AddProductSkuToProducts' => $baseDir . '/database/migrations/2018_10_26_151347_add_product_sku_to_products.php', + 'AddReferrerToUsersTable' => $baseDir . '/database/migrations/2019_09_13_103243_add_referrer_to_users_table.php', 'AddShowTweetsToWidgetsTable' => $baseDir . '/database/migrations/2019_01_27_075045_add_show_tweets_to_widgets_table.php', 'AddStateCodeColumnsToTaxByStatesTable' => $baseDir . '/database/migrations/2018_04_13_130552_add_state_code_columns_to_tax_by_states_table.php', 'AddStateColumsToSettingsTable' => $baseDir . '/database/migrations/2018_04_13_092417_add_state_colums_to_settings_table.php', @@ -95,6 +97,7 @@ 'App\\Http\\Controllers\\Common\\PaymentSettingsController' => $baseDir . '/app/Http/Controllers/Common/PaymentSettingsController.php', 'App\\Http\\Controllers\\Common\\SettingsController' => $baseDir . '/app/Http/Controllers/Common/SettingsController.php', 'App\\Http\\Controllers\\Common\\SocialMediaController' => $baseDir . '/app/Http/Controllers/Common/SocialMediaController.php', + 'App\\Http\\Controllers\\Common\\SystemManagerController' => $baseDir . '/app/Http/Controllers/Common/SystemManagerController.php', 'App\\Http\\Controllers\\Common\\TemplateController' => $baseDir . '/app/Http/Controllers/Common/TemplateController.php', 'App\\Http\\Controllers\\Common\\TrackerController' => $baseDir . '/app/Http/Controllers/Common/TrackerController.php', 'App\\Http\\Controllers\\Common\\Twitter\\Config' => $baseDir . '/app/Http/Controllers/Common/Twitter/Config.php', @@ -182,6 +185,7 @@ 'App\\Http\\Requests\\Request' => $baseDir . '/app/Http/Requests/Request.php', 'App\\Http\\Requests\\User\\ClientRequest' => $baseDir . '/app/Http/Requests/User/ClientRequest.php', 'App\\Http\\Requests\\User\\ProfileRequest' => $baseDir . '/app/Http/Requests/User/ProfileRequest.php', + 'App\\Jobs\\SendEmail' => $baseDir . '/app/Jobs/SendEmail.php', 'App\\Model\\Common\\Bussiness' => $baseDir . '/app/Model/Common/Bussiness.php', 'App\\Model\\Common\\ChatScript' => $baseDir . '/app/Model/Common/ChatScript.php', 'App\\Model\\Common\\Country' => $baseDir . '/app/Model/Common/Country.php', @@ -5310,6 +5314,14 @@ 'Spatie\\Activitylog\\Traits\\CausesActivity' => $vendorDir . '/spatie/laravel-activitylog/src/Traits/CausesActivity.php', 'Spatie\\Activitylog\\Traits\\DetectsChanges' => $vendorDir . '/spatie/laravel-activitylog/src/Traits/DetectsChanges.php', 'Spatie\\Activitylog\\Traits\\LogsActivity' => $vendorDir . '/spatie/laravel-activitylog/src/Traits/LogsActivity.php', + 'Spatie\\Referer\\CaptureReferer' => $vendorDir . '/spatie/laravel-referer/src/CaptureReferer.php', + 'Spatie\\Referer\\Exceptions\\InvalidConfiguration' => $vendorDir . '/spatie/laravel-referer/src/Exceptions/InvalidConfiguration.php', + 'Spatie\\Referer\\Helpers\\Url' => $vendorDir . '/spatie/laravel-referer/src/Helpers/Url.php', + 'Spatie\\Referer\\Referer' => $vendorDir . '/spatie/laravel-referer/src/Referer.php', + 'Spatie\\Referer\\RefererServiceProvider' => $vendorDir . '/spatie/laravel-referer/src/RefererServiceProvider.php', + 'Spatie\\Referer\\Source' => $vendorDir . '/spatie/laravel-referer/src/Source.php', + 'Spatie\\Referer\\Sources\\RequestHeader' => $vendorDir . '/spatie/laravel-referer/src/Sources/RequestHeader.php', + 'Spatie\\Referer\\Sources\\UtmSource' => $vendorDir . '/spatie/laravel-referer/src/Sources/UtmSource.php', 'Spatie\\String\\Exceptions\\ErrorCreatingStringException' => $vendorDir . '/spatie/string/src/Exceptions/ErrorCreatingStringException.php', 'Spatie\\String\\Exceptions\\UnknownFunctionException' => $vendorDir . '/spatie/string/src/Exceptions/UnknownFunctionException.php', 'Spatie\\String\\Exceptions\\UnsetOffsetException' => $vendorDir . '/spatie/string/src/Exceptions/UnsetOffsetException.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 3e5746105b..f1deb8b699 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -37,6 +37,7 @@ 'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'), 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), 'Spatie\\String\\' => array($vendorDir . '/spatie/string/src'), + 'Spatie\\Referer\\' => array($vendorDir . '/spatie/laravel-referer/src'), 'Spatie\\Activitylog\\' => array($vendorDir . '/spatie/laravel-activitylog/src'), 'Seld\\PharUtils\\' => array($vendorDir . '/seld/phar-utils/src'), 'Seld\\JsonLint\\' => array($vendorDir . '/seld/jsonlint/src/Seld/JsonLint'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 18d3f20ed9..c10a11019d 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -151,6 +151,7 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 'Symfony\\Component\\CssSelector\\' => 30, 'Symfony\\Component\\Console\\' => 26, 'Spatie\\String\\' => 14, + 'Spatie\\Referer\\' => 15, 'Spatie\\Activitylog\\' => 19, 'Seld\\PharUtils\\' => 15, 'Seld\\JsonLint\\' => 14, @@ -398,6 +399,10 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 array ( 0 => __DIR__ . '/..' . '/spatie/string/src', ), + 'Spatie\\Referer\\' => + array ( + 0 => __DIR__ . '/..' . '/spatie/laravel-referer/src', + ), 'Spatie\\Activitylog\\' => array ( 0 => __DIR__ . '/..' . '/spatie/laravel-activitylog/src', @@ -757,6 +762,7 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 public static $classMap = array ( 'ActivityLogDelSeeder' => __DIR__ . '/../..' . '/database/seeds/DatabaseSeeder.php', + 'AddAccountManagerToUsersTable' => __DIR__ . '/../..' . '/database/migrations/2019_08_14_080250_add_account_manager_to_users_table.php', 'AddAgentsToInvoiceItems' => __DIR__ . '/../..' . '/database/migrations/2019_01_18_045523_add_agents_to_invoice_items.php', 'AddAllowDomainCheckToStatusSettings' => __DIR__ . '/../..' . '/database/migrations/2019_07_08_095503_add_allow_domain_check_to_status_settings.php', 'AddAmtToCreditToPayments' => __DIR__ . '/../..' . '/database/migrations/2018_08_21_094543_add_amt_to_credit_to_payments.php', @@ -794,6 +800,7 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 'AddPerpetualLicenseToProductsTable' => __DIR__ . '/../..' . '/database/migrations/2018_11_19_190929_add_perpetual_license_to_products_table.php', 'AddProductQuantityToPlanPrices' => __DIR__ . '/../..' . '/database/migrations/2019_01_08_060351_add_product_quantity_to_plan_prices.php', 'AddProductSkuToProducts' => __DIR__ . '/../..' . '/database/migrations/2018_10_26_151347_add_product_sku_to_products.php', + 'AddReferrerToUsersTable' => __DIR__ . '/../..' . '/database/migrations/2019_09_13_103243_add_referrer_to_users_table.php', 'AddShowTweetsToWidgetsTable' => __DIR__ . '/../..' . '/database/migrations/2019_01_27_075045_add_show_tweets_to_widgets_table.php', 'AddStateCodeColumnsToTaxByStatesTable' => __DIR__ . '/../..' . '/database/migrations/2018_04_13_130552_add_state_code_columns_to_tax_by_states_table.php', 'AddStateColumsToSettingsTable' => __DIR__ . '/../..' . '/database/migrations/2018_04_13_092417_add_state_colums_to_settings_table.php', @@ -845,6 +852,7 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 'App\\Http\\Controllers\\Common\\PaymentSettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/PaymentSettingsController.php', 'App\\Http\\Controllers\\Common\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/SettingsController.php', 'App\\Http\\Controllers\\Common\\SocialMediaController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/SocialMediaController.php', + 'App\\Http\\Controllers\\Common\\SystemManagerController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/SystemManagerController.php', 'App\\Http\\Controllers\\Common\\TemplateController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/TemplateController.php', 'App\\Http\\Controllers\\Common\\TrackerController' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/TrackerController.php', 'App\\Http\\Controllers\\Common\\Twitter\\Config' => __DIR__ . '/../..' . '/app/Http/Controllers/Common/Twitter/Config.php', @@ -932,6 +940,7 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 'App\\Http\\Requests\\Request' => __DIR__ . '/../..' . '/app/Http/Requests/Request.php', 'App\\Http\\Requests\\User\\ClientRequest' => __DIR__ . '/../..' . '/app/Http/Requests/User/ClientRequest.php', 'App\\Http\\Requests\\User\\ProfileRequest' => __DIR__ . '/../..' . '/app/Http/Requests/User/ProfileRequest.php', + 'App\\Jobs\\SendEmail' => __DIR__ . '/../..' . '/app/Jobs/SendEmail.php', 'App\\Model\\Common\\Bussiness' => __DIR__ . '/../..' . '/app/Model/Common/Bussiness.php', 'App\\Model\\Common\\ChatScript' => __DIR__ . '/../..' . '/app/Model/Common/ChatScript.php', 'App\\Model\\Common\\Country' => __DIR__ . '/../..' . '/app/Model/Common/Country.php', @@ -6060,6 +6069,14 @@ class ComposerStaticInitbb14d002d94c2a0afc906c0d693f6d84 'Spatie\\Activitylog\\Traits\\CausesActivity' => __DIR__ . '/..' . '/spatie/laravel-activitylog/src/Traits/CausesActivity.php', 'Spatie\\Activitylog\\Traits\\DetectsChanges' => __DIR__ . '/..' . '/spatie/laravel-activitylog/src/Traits/DetectsChanges.php', 'Spatie\\Activitylog\\Traits\\LogsActivity' => __DIR__ . '/..' . '/spatie/laravel-activitylog/src/Traits/LogsActivity.php', + 'Spatie\\Referer\\CaptureReferer' => __DIR__ . '/..' . '/spatie/laravel-referer/src/CaptureReferer.php', + 'Spatie\\Referer\\Exceptions\\InvalidConfiguration' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Exceptions/InvalidConfiguration.php', + 'Spatie\\Referer\\Helpers\\Url' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Helpers/Url.php', + 'Spatie\\Referer\\Referer' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Referer.php', + 'Spatie\\Referer\\RefererServiceProvider' => __DIR__ . '/..' . '/spatie/laravel-referer/src/RefererServiceProvider.php', + 'Spatie\\Referer\\Source' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Source.php', + 'Spatie\\Referer\\Sources\\RequestHeader' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Sources/RequestHeader.php', + 'Spatie\\Referer\\Sources\\UtmSource' => __DIR__ . '/..' . '/spatie/laravel-referer/src/Sources/UtmSource.php', 'Spatie\\String\\Exceptions\\ErrorCreatingStringException' => __DIR__ . '/..' . '/spatie/string/src/Exceptions/ErrorCreatingStringException.php', 'Spatie\\String\\Exceptions\\UnknownFunctionException' => __DIR__ . '/..' . '/spatie/string/src/Exceptions/UnknownFunctionException.php', 'Spatie\\String\\Exceptions\\UnsetOffsetException' => __DIR__ . '/..' . '/spatie/string/src/Exceptions/UnsetOffsetException.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 6999dcd0ec..0f8220e54a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -6343,6 +6343,65 @@ "user" ] }, + { + "name": "spatie/laravel-referer", + "version": "1.5.0", + "version_normalized": "1.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-referer.git", + "reference": "ce5845acc922ddc54cacc42f9beba2f37c725a31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-referer/zipball/ce5845acc922ddc54cacc42f9beba2f37c725a31", + "reference": "ce5845acc922ddc54cacc42f9beba2f37c725a31", + "shasum": "" + }, + "require": { + "illuminate/contracts": "~5.8.0|^6.0", + "illuminate/http": "~5.8.0|^6.0", + "illuminate/support": "~5.8.0|^6.0", + "php": "^7.2" + }, + "require-dev": { + "orchestra/testbench": "~3.8.0|^4.0", + "phpunit/phpunit": "^8.0" + }, + "time": "2019-09-04T09:17:01+00:00", + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Referer\\RefererServiceProvider" + ] + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Spatie\\Referer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Keep a visitor's original referer in session", + "homepage": "https://github.com/spatie/laravel-referer", + "keywords": [ + "laravel-referer", + "spatie" + ] + }, { "name": "spatie/string", "version": "2.2.2", diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php index 4410a53e46..b7b007f9c8 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php @@ -12,6 +12,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\User\ProfileRequest; use App\Model\User\AccountActivate; +use Facades\Spatie\Referer\Referer; use App\User; use Bugsnag; // use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; @@ -65,13 +66,7 @@ public function postRegister(ProfileRequest $request, User $user, AccountActivat $currency = $userCountry->currency->code; $currency_symbol = $userCountry->currency->symbol; } - // if (\Session::has('currency')) { - // $currency = \Session::get('currency'); - // } - // dd($currency); - $manager=$this->accountManager(); - $account_manager =$manager; - + $password = \Hash::make($pass); $user->password = $password; $user->town=$location['city']; @@ -89,9 +84,11 @@ public function postRegister(ProfileRequest $request, User $user, AccountActivat $user->zip = $zip; $user->user_name = $user_name; - $user->manager = $account_manager; + $user->manager = $user->assignSalesManager(); $user->ip = $location['ip']; $user->currency = $currency; + $referer = Referer::get(); // 'google.com' + $user->referrer = $referer; $user->timezone_id = \App\Http\Controllers\Front\CartController::getTimezoneByName($location['timezone']); $emailMobileSetting = StatusSetting::select('emailverification_status', 'msg91_status')->first(); if ($emailMobileSetting->emailverification_status == 0 && $emailMobileSetting->msg91_status ==1) { @@ -115,8 +112,9 @@ public function postRegister(ProfileRequest $request, User $user, AccountActivat $response = ['type' => 'success', 'user_id' => $user->id, 'message' => 'Your Submission has been received successfully. Verify your Email and Mobile to log into the Website.']; } } + activity()->log('User ' . $request->input('first_name'). ' '.$request->input('last_name'). ' was created'); - $this->accountManagerMail($user); + // $this->accountManagerMail($user); return response()->json($response); @@ -419,40 +417,6 @@ public function accountManager() return $manager; } - public function accountManagerMail($user) - { - $manager = $user->manager() - - ->where('position', 'manager') - ->select('first_name', 'last_name', 'email', 'mobile_code', 'mobile', 'skype') - ->first(); - if ($user && $user->role == 'user' && $manager) { - $settings = new \App\Model\Common\Setting(); - $setting = $settings->first(); - $from = $setting->email; - $to = $user->email; - $templates = new \App\Model\Common\Template(); - $template = $templates - ->join('template_types', 'templates.type', '=', 'template_types.id') - ->where('template_types.name', '=', 'manager_email') - ->select('templates.data', 'templates.name') - ->first(); - $template_data = $template->data; - $template_name = $template->name; - $template_controller = new \App\Http\Controllers\Common\TemplateController(); - $replace = [ - 'name' => $user->first_name.' '.$user->last_name, - 'manager_first_name' => $manager->first_name, - 'manager_last_name' => $manager->last_name, - 'manager_email' => $manager->email, - 'manager_code' => $manager->mobile_code, - 'manager_mobile' => $manager->mobile, - 'manager_skype' => $manager->skype, - ]; - //dd($from, $to, $template_data, $template_name, $replace); - $template_controller->mailing($from, $to, $template_data, $template_name, $replace, 'manager_email'); - } - } /** * Handle a registration request for the application. diff --git a/vendor/pragmarx/tracker/src/Vendor/Laravel/ServiceProvider.php b/vendor/pragmarx/tracker/src/Vendor/Laravel/ServiceProvider.php new file mode 100644 index 0000000000..05985567ef --- /dev/null +++ b/vendor/pragmarx/tracker/src/Vendor/Laravel/ServiceProvider.php @@ -0,0 +1,681 @@ +getConfig('enabled')) { + return false; + } + + $this->loadRoutes(); + + $this->registerErrorHandler(); + + if (!isLaravel5()) { + $this->bootTracker(); + } + + $this->loadTranslations(); + } + + /** + * Check if the service provider is full booted. + * + * @return void + */ + public function isFullyBooted() + { + return $this->repositoryManagerIsBooted; + } + + /** + * Register the service provider. + * + * @return void + */ + public function register() + { + parent::register(); + + if ($this->getConfig('enabled')) { + $this->registerAuthentication(); + + $this->registerCache(); + + $this->registerRepositories(); + + $this->registerTracker(); + + $this->registerTablesCommand(); + + $this->registerUpdateGeoIpCommand(); + + $this->registerExecutionCallback(); + + $this->registerUserCheckCallback(); + + $this->registerSqlQueryLogWatcher(); + + $this->registerGlobalEventLogger(); + + $this->registerDatatables(); + + $this->registerMessageRepository(); + + $this->registerGlobalViewComposers(); + } + } + + /** + * Get the services provided by the provider. + * + * @return string[] + */ + public function provides() + { + return ['tracker']; + } + + /** + * Takes all the components of Tracker and glues them + * together to create Tracker. + * + * @return void + */ + protected function registerTracker() + { + $this->app->singleton('tracker', function ($app) { + $app['tracker.loaded'] = true; + + return new Tracker( + $app['tracker.config'], + $app['tracker.repositories'], + $app['request'], + $app['router'], + $app['log'], + $app, + $app['tracker.messages'] + ); + }); + } + + public function registerRepositories() + { + $this->app->singleton('tracker.repositories', function ($app) { + try { + $uaParser = new UserAgentParser($app->make('path.base')); + } catch (\Exception $exception) { + $uaParser = null; + } + + $sessionModel = $this->instantiateModel('session_model'); + + $logModel = $this->instantiateModel('log_model'); + + $agentModel = $this->instantiateModel('agent_model'); + + $deviceModel = $this->instantiateModel('device_model'); + + $cookieModel = $this->instantiateModel('cookie_model'); + + $pathModel = $this->instantiateModel('path_model'); + + $queryModel = $this->instantiateModel('query_model'); + + $queryArgumentModel = $this->instantiateModel('query_argument_model'); + + $domainModel = $this->instantiateModel('domain_model'); + + $refererModel = $this->instantiateModel('referer_model'); + + $refererSearchTermModel = $this->instantiateModel('referer_search_term_model'); + + $routeModel = $this->instantiateModel('route_model'); + + $routePathModel = $this->instantiateModel('route_path_model'); + + $routePathParameterModel = $this->instantiateModel('route_path_parameter_model'); + + $errorModel = $this->instantiateModel('error_model'); + + $geoipModel = $this->instantiateModel('geoip_model'); + + $sqlQueryModel = $this->instantiateModel('sql_query_model'); + + $sqlQueryBindingModel = $this->instantiateModel('sql_query_binding_model'); + + $sqlQueryBindingParameterModel = $this->instantiateModel('sql_query_binding_parameter_model'); + + $sqlQueryLogModel = $this->instantiateModel('sql_query_log_model'); + + $connectionModel = $this->instantiateModel('connection_model'); + + $eventModel = $this->instantiateModel('event_model'); + + $eventLogModel = $this->instantiateModel('event_log_model'); + + $systemClassModel = $this->instantiateModel('system_class_model'); + + $languageModel = $this->instantiateModel('language_model'); + + $logRepository = new Log($logModel); + + $connectionRepository = new Connection($connectionModel); + + $sqlQueryBindingRepository = new SqlQueryBinding($sqlQueryBindingModel); + + $sqlQueryBindingParameterRepository = new SqlQueryBindingParameter($sqlQueryBindingParameterModel); + + $sqlQueryLogRepository = new SqlQueryLog($sqlQueryLogModel); + + $sqlQueryRepository = new SqlQuery( + $sqlQueryModel, + $sqlQueryLogRepository, + $sqlQueryBindingRepository, + $sqlQueryBindingParameterRepository, + $connectionRepository, + $logRepository, + $app['tracker.config'] + ); + + $eventLogRepository = new EventLog($eventLogModel); + + $systemClassRepository = new SystemClass($systemClassModel); + + $eventRepository = new Event( + $eventModel, + $app['tracker.events'], + $eventLogRepository, + $systemClassRepository, + $logRepository, + $app['tracker.config'] + ); + + $routeRepository = new Route( + $routeModel, + $app['tracker.config'] + ); + + $crawlerDetect = new CrawlerDetector( + $app['request']->headers->all(), + $app['request']->server('HTTP_USER_AGENT') + ); + + $manager = new RepositoryManager( + new GeoIp($this->getConfig('geoip_database_path')), + + new MobileDetect(), + + $uaParser, + + $app['tracker.authentication'], + + $app['session.store'], + + $app['tracker.config'], + + new Session($sessionModel, + $app['tracker.config'], + new PhpSession()), + + $logRepository, + + new Path($pathModel), + + new Query($queryModel), + + new QueryArgument($queryArgumentModel), + + new Agent($agentModel), + + new Device($deviceModel), + + new Cookie($cookieModel, + $app['tracker.config'], + $app['request'], + $app['cookie']), + + new Domain($domainModel), + + new Referer( + $refererModel, + $refererSearchTermModel, + $this->getAppUrl(), + $app->make('PragmaRX\Tracker\Support\RefererParser') + ), + + $routeRepository, + + new RoutePath($routePathModel), + + new RoutePathParameter($routePathParameterModel), + + new Error($errorModel), + + new GeoIpRepository($geoipModel), + + $sqlQueryRepository, + + $sqlQueryBindingRepository, + + $sqlQueryBindingParameterRepository, + + $sqlQueryLogRepository, + + $connectionRepository, + + $eventRepository, + + $eventLogRepository, + + $systemClassRepository, + + $crawlerDetect, + + new Language($languageModel), + + new LanguageDetect() + ); + + $this->repositoryManagerIsBooted = true; + + return $manager; + }); + } + + public function registerAuthentication() + { + $this->app->singleton('tracker.authentication', function ($app) { + return new Authentication($app['tracker.config'], $app); + }); + } + + public function registerCache() + { + $this->app->singleton('tracker.cache', function ($app) { + return new Cache($app['tracker.config'], $app); + }); + } + + protected function registerTablesCommand() + { + $this->app->singleton('tracker.tables.command', function ($app) { + return new TablesCommand(); + }); + + $this->commands('tracker.tables.command'); + } + + protected function registerExecutionCallback() + { + $me = $this; + + $mathingEvents = [ + 'router.matched', + 'Illuminate\Routing\Events\RouteMatched', + ]; + + $this->app['events']->listen($mathingEvents, function () use ($me) { + $me->getTracker()->routerMatched($me->getConfig('log_routes')); + }); + } + + protected function registerErrorHandler() + { + if ($this->getConfig('log_exceptions')) { + if (isLaravel5()) { + $illuminateHandler = 'Illuminate\Contracts\Debug\ExceptionHandler'; + + $handler = new TrackerExceptionHandler( + $this->getTracker(), + $this->app[$illuminateHandler] + ); + + // Replace original Illuminate Exception Handler by Tracker's + $this->app[$illuminateHandler] = $handler; + } else { + $me = $this; + + $this->app->error( + function (\Exception $exception, $code) use ($me) { + $me->app['tracker']->handleException($exception, $code); + } + ); + } + } + } + + /** + * @param string $modelName + */ + protected function instantiateModel($modelName) + { + $model = $this->getConfig($modelName); + + if (!$model) { + $message = "Tracker: Model not found for '$modelName'."; + + $this->app['log']->error($message); + + throw new \Exception($message); + } + + $model = new $model(); + + $model->setConfig($this->app['tracker.config']); + + if ($connection = $this->getConfig('connection')) { + $model->setConnection($connection); + } + + return $model; + } + + protected function registerSqlQueryLogWatcher() + { + $me = $this; + + if (!class_exists('Illuminate\Database\Events\QueryExecuted')) { + $this->app['events']->listen('illuminate.query', function ($query, + $bindings, + $time, + $name) use ($me) { + $me->logSqlQuery($query, $bindings, $time, $name); + }); + } else { + $this->app['events']->listen('Illuminate\Database\Events\QueryExecuted', function ($query) use ($me) { + $me->logSqlQuery($query); + }); + } + } + + /** + * @param $query + * @param $bindings + * @param $time + * @param $name + * @param $me + */ + public function logSqlQuery($query, $bindings = null, $time = null, $connectionName = null) + { + if ($this->getTracker()->isEnabled()) { + if ($query instanceof \Illuminate\Database\Events\QueryExecuted) { + $bindings = $query->bindings; + $time = $query->time; + $connectionName = $query->connectionName; + $query = $query->sql; + } + + $this->getTracker()->logSqlQuery($query, $bindings, $time, $connectionName); + } + } + + protected function registerGlobalEventLogger() + { + $me = $this; + + $this->app->singleton('tracker.events', function ($app) { + return new EventStorage(); + }); + + $this->app['events']->listen('*', function ($object = null) use ($me) { + if ($me->app['tracker.events']->isOff() || !$me->isFullyBooted()) { + return; + } + + // To avoid infinite recursion, event tracking while logging events + // must be turned off + $me->app['tracker.events']->turnOff(); + + // Log events even before application is ready + // $me->app['tracker.events']->logEvent( + // $me->app['events']->firing(), + // $object + // ); + // TODO: we have to investigate a way of doing this + + // Can only send events to database after application is ready + if (isset($me->app['tracker.loaded'])) { + $me->getTracker()->logEvents(); + } + + // Turn the event tracking to on again + $me->app['tracker.events']->turnOn(); + }); + } + + protected function loadRoutes() + { + if (!$this->getConfig('stats_panel_enabled')) { + return false; + } + + $prefix = $this->getConfig('stats_base_uri'); + + $namespace = $this->getConfig('stats_controllers_namespace'); + + $filters = []; + + if ($before = $this->getConfig('stats_routes_before_filter')) { + $filters['before'] = $before; + } + + if ($after = $this->getConfig('stats_routes_after_filter')) { + $filters['after'] = $after; + } + + if ($middleware = $this->getConfig('stats_routes_middleware')) { + $filters['middleware'] = $middleware; + } + + $router = $this->app->make('router'); + + $router->group(['namespace' => $namespace], function () use ($prefix, $router, $filters) { + $router->group($filters, function () use ($prefix, $router) { + $router->group(['prefix' => $prefix], function ($router) { + $router->get('/', ['as' => 'tracker.stats.index', 'uses' => 'Stats@index']); + + $router->get('log/{uuid}', ['as' => 'tracker.stats.log', 'uses' => 'Stats@log']); + + $router->get('api/pageviews', ['as' => 'tracker.stats.api.pageviews', 'uses' => 'Stats@apiPageviews']); + + $router->get('api/pageviewsbycountry', ['as' => 'tracker.stats.api.pageviewsbycountry', 'uses' => 'Stats@apiPageviewsByCountry']); + + $router->get('api/log/{uuid}', ['as' => 'tracker.stats.api.log', 'uses' => 'Stats@apiLog']); + + $router->get('api/errors', ['as' => 'tracker.stats.api.errors', 'uses' => 'Stats@apiErrors']); + + $router->get('api/events', ['as' => 'tracker.stats.api.events', 'uses' => 'Stats@apiEvents']); + + $router->get('api/users', ['as' => 'tracker.stats.api.users', 'uses' => 'Stats@apiUsers']); + + $router->get('api/visits', ['as' => 'tracker.stats.api.visits', 'uses' => 'Stats@apiVisits']); + }); + }); + }); + } + + protected function registerDatatables() + { + $this->registerServiceProvider('Bllim\Datatables\DatatablesServiceProvider'); + + $this->registerServiceAlias('Datatable', 'Bllim\Datatables\Facade\Datatables'); + } + + /** + * Get the current package directory. + * + * @return string + */ + public function getPackageDir() + { + return __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'; + } + + /** + * Boot & Track. + */ + protected function bootTracker() + { + $this->getTracker()->boot(); + } + + /** + * Register global view composers. + */ + protected function registerGlobalViewComposers() + { + $me = $this; + + $this->app->make('view')->composer('pragmarx/tracker::*', function ($view) use ($me) { + $view->with('stats_layout', $me->getConfig('stats_layout')); + + $template_path = url('/').$me->getConfig('stats_template_path'); + + $view->with('stats_template_path', $template_path); + }); + } + + protected function registerUpdateGeoIpCommand() + { + $this->app->singleton('tracker.updategeoip.command', function ($app) { + return new UpdateGeoIp(); + }); + + $this->commands('tracker.updategeoip.command'); + } + + protected function registerUserCheckCallback() + { + $me = $this; + + $this->app['events']->listen('router.before', function ($object = null) use ($me) { + + // get auth bindings to check + $bindings = $me->getConfig('authentication_ioc_binding'); + + // check if all bindings are resolved + $checked_bindings = array_map(function ($abstract) use ($me) { + return $me->app->resolved($abstract); + }, $bindings); + + $all_bindings_resolved = + (!in_array(false, $checked_bindings, true)) ?: false; + + if ($me->tracker && + !$me->userChecked && + $me->getConfig('log_users') && + $all_bindings_resolved + ) { + $me->userChecked = $me->getTracker()->checkCurrentUser(); + } + }); + } + + /** + * @return Tracker + */ + public function getTracker() + { + if (!$this->tracker) { + $this->tracker = $this->app['tracker']; + } + + return $this->tracker; + } + + public function getRootDirectory() + { + return __DIR__.'/../..'; + } + + protected function getAppUrl() + { + return $this->app['request']->url(); + } + + public function loadTranslations() + { + $this->loadTranslationsFrom(__DIR__.'/../../lang', 'tracker'); + } + + /** + * Register the message repository. + */ + protected function registerMessageRepository() + { + $this->app->singleton('tracker.messages', function () { + return new MessageRepository(); + }); + } +} diff --git a/vendor/spatie/laravel-referer/.editorconfig b/vendor/spatie/laravel-referer/.editorconfig new file mode 100644 index 0000000000..cd8eb86efa --- /dev/null +++ b/vendor/spatie/laravel-referer/.editorconfig @@ -0,0 +1,15 @@ +; This file is for unifying the coding style for different editors and IDEs. +; More information at http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/vendor/spatie/laravel-referer/.styleci.yml b/vendor/spatie/laravel-referer/.styleci.yml new file mode 100644 index 0000000000..f4d3cbc61b --- /dev/null +++ b/vendor/spatie/laravel-referer/.styleci.yml @@ -0,0 +1,4 @@ +preset: laravel + +disabled: + - single_class_element_per_statement diff --git a/vendor/spatie/laravel-referer/CHANGELOG.md b/vendor/spatie/laravel-referer/CHANGELOG.md new file mode 100644 index 0000000000..8c3499e1de --- /dev/null +++ b/vendor/spatie/laravel-referer/CHANGELOG.md @@ -0,0 +1,46 @@ +# Changelog + +All notable changes to `laravel-referer` will be documented in this file + +## 1.5.0 - 2019-09-04 + +- add support for Laravel 6 + +## 1.4.0 - 2019-02-27 + +- drop support for PHP 7.1 and below +- drop support for Laravel 5.8 and below + +## 1.3.4 - 2019-02-27 + +- add support for Laravel 5.8 + +## 1.3.3 - 2018-08-29 + +- add support for Laravel 5.7 + +## 1.3.2 - 2018-05-14 +- Ensure `UtmSource` always returns a referer string + +## 1.3.1 - 2018-02-08 +- Make compatible with Laravel 5.6 +- Make compatible with phpunit 7 + +## 1.3.0 - 2017-08-31 +- Make compatible with Laravel 5.5 + +## 1.2.1 - 2017-02-12 +- Fixed: publishing of config file + +## 1.2.0 - 2017-02-08 +- **Breaking**: Sources are now configured via `Source` implementations +- **Breaking**: The configuration key `referer.key` has been renamed to `referer.session_key` + +## 1.1.1 - 2017-02-07 +- Fixed: Fixed a regression that was introduced in 1.1.0 + +## 1.1.0 - 2017-02-07 +- Added: You can now configure which sources you want to use to capture a referer (currently `utm_source` and `referer_header`) + +## 1.0.0 - 2017-01-06 +- Initial release diff --git a/vendor/spatie/laravel-referer/CONTRIBUTING.md b/vendor/spatie/laravel-referer/CONTRIBUTING.md new file mode 100644 index 0000000000..4da74e3fd9 --- /dev/null +++ b/vendor/spatie/laravel-referer/CONTRIBUTING.md @@ -0,0 +1,55 @@ +# Contributing + +Contributions are **welcome** and will be fully **credited**. + +Please read and understand the contribution guide before creating an issue or pull request. + +## Etiquette + +This project is open source, and as such, the maintainers give their free time to build and maintain the source code +held within. They make the code freely available in the hope that it will be of use to other developers. It would be +extremely unfair for them to suffer abuse or anger for their hard work. + +Please be considerate towards maintainers when raising issues or presenting pull requests. Let's show the +world that developers are civilized and selfless people. + +It's the duty of the maintainer to ensure that all submissions to the project are of sufficient +quality to benefit the project. Many developers have different skillsets, strengths, and weaknesses. Respect the maintainer's decision, and do not be upset or abusive if your submission is not used. + +## Viability + +When requesting or submitting new features, first consider whether it might be useful to others. Open +source projects are used by many developers, who may have entirely different needs to your own. Think about +whether or not your feature is likely to be used by other users of the project. + +## Procedure + +Before filing an issue: + +- Attempt to replicate the problem, to ensure that it wasn't a coincidental incident. +- Check to make sure your feature suggestion isn't already present within the project. +- Check the pull requests tab to ensure that the bug doesn't have a fix in progress. +- Check the pull requests tab to ensure that the feature isn't already in progress. + +Before submitting a pull request: + +- Check the codebase to ensure that your feature doesn't already exist. +- Check the pull requests to ensure that another person hasn't already submitted the feature or fix. + +## Requirements + +If the project maintainer has any additional requirements, you will find them listed here. + +- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). + +- **Add tests!** - Your patch won't be accepted if it doesn't have tests. + +- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. + +- **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. + +- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. + +- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting. + +**Happy coding**! diff --git a/vendor/spatie/laravel-referer/LICENSE.md b/vendor/spatie/laravel-referer/LICENSE.md new file mode 100644 index 0000000000..59e5ec5979 --- /dev/null +++ b/vendor/spatie/laravel-referer/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Spatie bvba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/spatie/laravel-referer/README.md b/vendor/spatie/laravel-referer/README.md new file mode 100644 index 0000000000..e5bce05f33 --- /dev/null +++ b/vendor/spatie/laravel-referer/README.md @@ -0,0 +1,198 @@ +# Remember a visitor's original referer + +[![Latest Version on Packagist](https://img.shields.io/packagist/v/spatie/laravel-referer.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-referer) +[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md) +[![Build Status](https://img.shields.io/travis/spatie/laravel-referer/master.svg?style=flat-square)](https://travis-ci.org/spatie/laravel-referer) +[![Quality Score](https://img.shields.io/scrutinizer/g/spatie/laravel-referer.svg?style=flat-square)](https://scrutinizer-ci.com/g/spatie/laravel-referer) +[![StyleCI](https://styleci.io/repos/80646641/shield?branch=master)](https://styleci.io/repos/80646641) +[![Total Downloads](https://img.shields.io/packagist/dt/spatie/laravel-referer.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-referer) + +Remember a visitor's original referer in session. The referer is (highest priority first): + +- The `utm_source` query parameter +- The domain from the request's `Referer` header if there's an external host in the URL +- Empty + +## Installation + +You can install the package via composer: + +``` bash +composer require spatie/laravel-referer +``` + +The package will automatically register itself in Laravel 5.5. In Laravel 5.4. you'll manually need to register the `Spatie\Referer\RefererServiceProvider` service provider in `config/app.php`. + +You can publish the config file with: + +``` +php artisan vendor:publish --provider="Spatie\Referer\RefererServiceProvider" +``` + +Publishing the config file is necessary if you want to change the key in which the referer is stored in the session or +if you want to disable a referer source. + +```php +return [ + + /* + * The key that will be used to remember the referer in the session. + */ + 'session_key' => 'referer', + + /* + * The sources used to determine the referer. + */ + 'sources' => [ + Spatie\Referer\Sources\UtmSource::class, + Spatie\Referer\Sources\RequestHeader::class, + ], +]; +``` + +## Usage + +To capture the referer, all you need to do is add the `Spatie\Referer\CaptureReferer` middleware to your middleware stack. In most configuration's, you'll only want to capture the referer in "web" requests, so it makes sense to register it in the `web` stack. Make sure it comes **after** Laravel's `StartSession` middleware! + +```php +// app/Http/Kernel.php + +protected $middlewareGroups = [ + 'web' => [ + // ... + \Illuminate\Session\Middleware\StartSession::class, + // ... + \Spatie\Referer\CaptureReferer::class, + // ... + ], + // ... +]; +``` + +The easiest way to retrieve the referer is by just resolving it out of the container: + +```php +use App\Spatie\Referer\Referer; + +$referer = app(Referer::class)->get(); // 'google.com' +``` + +Or you could opt to use Laravel's automatic facades: + +```php +use Facades\Spatie\Referer\Referer; + +$referer = Referer::get(); // 'google.com' +``` + +The captured referer is (from high to low priority): + +- The `utm_source` query parameter, or: +- The domain from the request's `Referer` header if there's an external host in the URL, or: +- Empty + +An empty referer will never overwrite an exisiting referer. So if a visitor comes from google.com and visits a few pages on your site, those pages won't affect the referer since local hosts are ignored. + +### Forgetting or manually setting the referer + +The `Referer` class provides dedicated methods to forget, or manually set the referer. + +```php +use Referer; + +Referer::put('google.com'); +Referer::get(); // 'google.com' +Referer::forget(); +Referer::get(); // '' +``` + +### Changing the way the referer is determined + +The referer is determined by doing checks on various sources, which are defined in the configuration. + +```php +return [ + // ... + 'sources' => [ + Spatie\Referer\Sources\UtmSource::class, + Spatie\Referer\Sources\RequestHeader::class, + ], +]; +``` + +A source implements the `Source` interface, and requires one method, `getReferer`. If a source is able to determine a referer, other sources will be ignored. In other words, the `sources` array is ordered by priority. + +In the next example, we'll add a source that can use a `?ref` query parameter to determine the referer. Additionally, we'll ignore `?utm_source` parameters. + +First, create the source implementations: + +```php +namespace App\Referer; + +use Illuminate\Http\Request; +use Spatie\Referer\Source; + +class RefParameter implements Source +{ + public function getReferer(Request $request): string + { + return $request->get('ref', ''); + } +} +``` + +Then register your source in the `sources` array. We'll also disable the `utm_source` while we're at it. + +```php +return [ + // ... + 'sources' => [ + App\Referer\RefParameter::class, + Spatie\Referer\Sources\RequestHeader::class, + ], +]; +``` + +That's it! Source implementations can be this simple, or more advanced if necessary. + +## Changelog + +Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently. + +## Testing + +``` bash +composer test +``` + +## Contributing + +Please see [CONTRIBUTING](CONTRIBUTING.md) for details. + +## Security + +If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker. + +## Postcardware + +You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. + +Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium. + +We publish all received postcards [on our company website](https://spatie.be/en/opensource/postcards). + +## Credits + +- [Sebastian De Deyne](https://github.com/sebastiandedeyne) +- [All Contributors](../../contributors) + +## Support us + +Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects [on our website](https://spatie.be/opensource). + +Does your business depend on our contributions? Reach out and support us on [Patreon](https://www.patreon.com/spatie). +All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff. + +## License + +The MIT License (MIT). Please see [License File](LICENSE.md) for more information. diff --git a/vendor/spatie/laravel-referer/composer.json b/vendor/spatie/laravel-referer/composer.json new file mode 100644 index 0000000000..15206be93c --- /dev/null +++ b/vendor/spatie/laravel-referer/composer.json @@ -0,0 +1,51 @@ +{ + "name": "spatie/laravel-referer", + "description": "Keep a visitor's original referer in session", + "keywords": [ + "spatie", + "laravel-referer" + ], + "homepage": "https://github.com/spatie/laravel-referer", + "license": "MIT", + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "require": { + "php": "^7.2", + "illuminate/contracts": "~5.8.0|^6.0", + "illuminate/http": "~5.8.0|^6.0", + "illuminate/support": "~5.8.0|^6.0" + }, + "require-dev": { + "orchestra/testbench": "~3.8.0|^4.0", + "phpunit/phpunit": "^8.0" + }, + "autoload": { + "psr-4": { + "Spatie\\Referer\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Spatie\\Referer\\Test\\": "tests" + } + }, + "scripts": { + "test": "vendor/bin/phpunit" + }, + "config": { + "sort-packages": true + }, + "extra": { + "laravel": { + "providers": [ + "Spatie\\Referer\\RefererServiceProvider" + ] + } + } +} diff --git a/vendor/spatie/laravel-referer/config/referer.php b/vendor/spatie/laravel-referer/config/referer.php new file mode 100644 index 0000000000..39d849286a --- /dev/null +++ b/vendor/spatie/laravel-referer/config/referer.php @@ -0,0 +1,17 @@ + 'referer', + + /* + * The sources used to determine the referer. + */ + 'sources' => [ + Spatie\Referer\Sources\UtmSource::class, + Spatie\Referer\Sources\RequestHeader::class, + ], +]; diff --git a/vendor/spatie/laravel-referer/src/CaptureReferer.php b/vendor/spatie/laravel-referer/src/CaptureReferer.php new file mode 100644 index 0000000000..d5f433eaa7 --- /dev/null +++ b/vendor/spatie/laravel-referer/src/CaptureReferer.php @@ -0,0 +1,23 @@ +referer = $referer; + } + + public function handle($request, Closure $next) + { + $this->referer->putFromRequest($request); + + return $next($request); + } +} diff --git a/vendor/spatie/laravel-referer/src/Exceptions/InvalidConfiguration.php b/vendor/spatie/laravel-referer/src/Exceptions/InvalidConfiguration.php new file mode 100644 index 0000000000..4ba5c792b9 --- /dev/null +++ b/vendor/spatie/laravel-referer/src/Exceptions/InvalidConfiguration.php @@ -0,0 +1,13 @@ +sessionKey = $sessionKey; + $this->sources = $sources; + $this->session = $session; + } + + public function get(): string + { + return $this->session->get($this->sessionKey, ''); + } + + public function forget() + { + $this->session->forget($this->sessionKey); + } + + public function put(string $referer) + { + return $this->session->put($this->sessionKey, $referer); + } + + public function putFromRequest(Request $request) + { + $referer = $this->determineFromRequest($request); + + if (! empty($referer)) { + $this->put($referer); + } + } + + protected function determineFromRequest(Request $request): string + { + foreach ($this->sources as $source) { + if ($referer = (new $source)->getReferer($request)) { + return $referer; + } + } + + return ''; + } +} diff --git a/vendor/spatie/laravel-referer/src/RefererServiceProvider.php b/vendor/spatie/laravel-referer/src/RefererServiceProvider.php new file mode 100644 index 0000000000..f12fff65d9 --- /dev/null +++ b/vendor/spatie/laravel-referer/src/RefererServiceProvider.php @@ -0,0 +1,41 @@ +publishes([ + __DIR__.'/../config/referer.php' => config_path('referer.php'), + ], 'config'); + } + + /** + * Register the application services. + */ + public function register() + { + $this->mergeConfigFrom(__DIR__.'/../config/referer.php', 'referer'); + + $this->app->when(Referer::class) + ->needs('$sessionKey') + ->give(function () { + return $this->app['config']->get('referer.session_key'); + }); + + $this->app->when(Referer::class) + ->needs('$sources') + ->give(function () { + return $this->app['config']->get('referer.sources', []); + }); + + $this->app->singleton(Referer::class); + $this->app->alias(Referer::class, 'referer'); + } +} diff --git a/vendor/spatie/laravel-referer/src/Source.php b/vendor/spatie/laravel-referer/src/Source.php new file mode 100644 index 0000000000..8f891ca4bd --- /dev/null +++ b/vendor/spatie/laravel-referer/src/Source.php @@ -0,0 +1,17 @@ +header('referer', ''); + + if (empty($referer)) { + return ''; + } + + $refererHost = Url::host($referer); + + if (empty($refererHost)) { + return ''; + } + + if ($refererHost === $request->getHost()) { + return ''; + } + + return $refererHost; + } +} diff --git a/vendor/spatie/laravel-referer/src/Sources/UtmSource.php b/vendor/spatie/laravel-referer/src/Sources/UtmSource.php new file mode 100644 index 0000000000..5071c1b0c6 --- /dev/null +++ b/vendor/spatie/laravel-referer/src/Sources/UtmSource.php @@ -0,0 +1,14 @@ +get('utm_source') ?? ''; + } +}