From 3b76605892e53dd9f5367d90f50a4676b6eaf476 Mon Sep 17 00:00:00 2001
From: Manish Verma
Date: Wed, 8 Aug 2018 15:37:25 +0530
Subject: [PATCH] Language update
Added different level of language preference functionaloty which can be
set from the new option in top navigation bar
Lanaguage preference can be set as
* System language (Default for all users)
* Session based (User who are not logged in and want to see they
system in language of their choice can set their preference in browser
session)
* User lever (for authenticated users who have updated their language
preference, system will change into their selected language when they
log into the system)
---
app/Exceptions/Handler.php | 1 +
.../Admin/helpdesk/LanguageController.php | 9 +++---
.../Client/helpdesk/UnAuthController.php | 27 ++++++++++++++++
...r_users_table_add_user_language_column.php | 32 +++++++++++++++++++
public/lb-faveo/js/languagechanger.js | 3 ++
.../default1/admin/layout/admin.blade.php | 16 +++++++++-
.../default1/agent/layout/agent.blade.php | 30 +++++++++++++++--
.../default1/client/layout/client.blade.php | 22 +++++++++++++
routes/web.php | 1 +
vendor/composer/autoload_classmap.php | 1 +
vendor/composer/autoload_static.php | 1 +
11 files changed, 136 insertions(+), 7 deletions(-)
create mode 100644 database/migrations/2018_08_08_094653_alter_users_table_add_user_language_column.php
create mode 100644 public/lb-faveo/js/languagechanger.js
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index c030b98ce..00079ffc4 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -48,6 +48,7 @@ class Handler extends ExceptionHandler
*/
public function report(Exception $e)
{
+ dd($e);
Bugsnag::setBeforeNotifyFunction(function ($error) { //set bugsnag
return false;
});
diff --git a/app/Http/Controllers/Admin/helpdesk/LanguageController.php b/app/Http/Controllers/Admin/helpdesk/LanguageController.php
index 684f2c7d4..bc44b9720 100644
--- a/app/Http/Controllers/Admin/helpdesk/LanguageController.php
+++ b/app/Http/Controllers/Admin/helpdesk/LanguageController.php
@@ -84,6 +84,7 @@ class LanguageController extends Controller
$path = base_path('resources/lang');
$values = scandir($path); //Extracts names of directories present in lang directory
$values = array_slice($values, 2); // skips array element $value[0] = '.' & $value[1] = '..'
+ $sysLanguage = \Cache::get('language');
return \Datatable::collection(new Collection($values))
->addColumn('language', function ($model) {
if ($model == Config::get('app.fallback_locale')) {
@@ -95,15 +96,15 @@ class LanguageController extends Controller
->addColumn('id', function ($model) {
return $model;
})
- ->addColumn('status', function ($model) {
- if (Lang::getLocale() === $model) {
+ ->addColumn('status', function ($model) use ($sysLanguage){
+ if ($sysLanguage === $model) {
return "".Lang::trans('lang.active').'';
} else {
return "".Lang::trans('lang.inactive').'';
}
})
- ->addColumn('Action', function ($model) {
- if (Lang::getLocale() === $model) {
+ ->addColumn('Action', function ($model) use ($sysLanguage) {
+ if ($model === $sysLanguage) {
return "
".Lang::trans('lang.delete').'';
} else {
diff --git a/app/Http/Controllers/Client/helpdesk/UnAuthController.php b/app/Http/Controllers/Client/helpdesk/UnAuthController.php
index b90dded4e..494c21fb2 100644
--- a/app/Http/Controllers/Client/helpdesk/UnAuthController.php
+++ b/app/Http/Controllers/Client/helpdesk/UnAuthController.php
@@ -19,6 +19,7 @@ use Hash;
// classes
use Illuminate\Http\Request;
use Lang;
+use Session;
/**
* GuestController.
@@ -415,4 +416,30 @@ class UnAuthController extends Controller
}
}
}
+
+ /**
+ * Function to chnage user language preference
+ *
+ * @param string $lang //desired language's iso code
+ *
+ * @category function to change system's language
+ *
+ * @return response
+ */
+ public static function changeUserLanguage($lang)
+ {
+ $path = base_path('resources/lang'); // Path to check available language packages
+ if (array_key_exists($lang, \Config::get('languages')) && in_array($lang, scandir($path))) {
+ if (\Auth::check()) {
+ $id = \Auth::user()->id;
+ $user = User::find($id);
+ $user->user_language = $lang;
+ $user->save();
+ } else {
+ Session::put('language', $lang);
+ }
+ }
+
+ return redirect()->back();
+ }
}
diff --git a/database/migrations/2018_08_08_094653_alter_users_table_add_user_language_column.php b/database/migrations/2018_08_08_094653_alter_users_table_add_user_language_column.php
new file mode 100644
index 000000000..4be5d57d2
--- /dev/null
+++ b/database/migrations/2018_08_08_094653_alter_users_table_add_user_language_column.php
@@ -0,0 +1,32 @@
+string('user_language', 10)->default(null)->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('users', function (Blueprint $table) {
+ $table->dropIfExists('user_language');
+ });
+ }
+}
diff --git a/public/lb-faveo/js/languagechanger.js b/public/lb-faveo/js/languagechanger.js
new file mode 100644
index 000000000..187caf02b
--- /dev/null
+++ b/public/lb-faveo/js/languagechanger.js
@@ -0,0 +1,3 @@
+function changeLang(lang) {
+ location.href = "swtich-language/"+lang;
+}
diff --git a/resources/views/themes/default1/admin/layout/admin.blade.php b/resources/views/themes/default1/admin/layout/admin.blade.php
index 0e6c0b351..412c3e3ae 100644
--- a/resources/views/themes/default1/admin/layout/admin.blade.php
+++ b/resources/views/themes/default1/admin/layout/admin.blade.php
@@ -156,6 +156,20 @@
+
+
+
+
+
@@ -173,6 +185,20 @@
+
+
+
+
+