Bug-fix-patch4

# handling exception in while adding language
# Implemented Yajra in users list table
# custom filter and veiw option in users list table
This commit is contained in:
Manish Verma
2016-12-20 19:33:23 +05:30
parent 1f8cda3875
commit 78f6a13528
11 changed files with 220 additions and 98 deletions

View File

@@ -122,79 +122,84 @@ class LanguageController extends Controller
*/
public function postForm()
{
// getting all of the post data
$file = [
'File' => Input::file('File'),
'language-name' => Input::input('language-name'),
'iso-code' => Input::input('iso-code'),
];
try {
// getting all of the post data
$file = [
'File' => Input::file('File'),
'language-name' => Input::input('language-name'),
'iso-code' => Input::input('iso-code'),
];
// setting up rules
$rules = [
'File' => 'required|mimes:zip|max:30000',
'language-name' => 'required',
'iso-code' => 'required|max:2',
]; // and for max size
// doing the validation, passing post data, rules and the messages
$validator = Validator::make($file, $rules);
if ($validator->fails()) {
// setting up rules
$rules = [
'File' => 'required|mimes:zip|max:30000',
'language-name' => 'required',
'iso-code' => 'required|max:2',
]; // and for max size
// doing the validation, passing post data, rules and the messages
$validator = Validator::make($file, $rules);
if ($validator->fails()) {
// send back to the page with the input data and errors
return Redirect::back()->withInput()->withErrors($validator);
} else {
//Checking if package already exists or not in lang folder
$path = base_path('resources/lang');
if (in_array(strtolower(Input::get('iso-code')), scandir($path))) {
//sending back with error message
Session::flash('fails', Lang::get('lang.package_exist'));
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
return Redirect::back()->withInput();
} elseif (!array_key_exists(strtolower(Input::get('iso-code')), Config::get('languages'))) {//Checking Valid ISO code form Languages.php
//sending back with error message
Session::flash('fails', Lang::get('lang.iso-code-error'));
return Redirect::back()->withInput();
// send back to the page with the input data and errors
return Redirect::back()->withInput()->withErrors($validator);
} else {
// checking file is valid.
if (Input::file('File')->isValid()) {
$name = Input::file('File')->getClientOriginalName(); //uploaded file's original name
$destinationPath = base_path('public/uploads/'); // defining uploading path
$extractpath = base_path('resources/lang').'/'.strtolower(Input::get('iso-code')); //defining extracting path
mkdir($extractpath); //creating directroy for extracting uploadd file
//mkdir($destinationPath);
Input::file('File')->move($destinationPath, $name); // uploading file to given path
\Zipper::make($destinationPath.'/'.$name)->extractTo($extractpath); //extracting file to give path
//check if Zip extract foldercontains any subfolder
$directories = File::directories($extractpath);
//$directories = glob($extractpath. '/*' , GLOB_ONLYDIR);
if (!empty($directories)) { //if extract folder contains subfolder
$success = File::deleteDirectory($extractpath); //remove extracted folder and it's subfolder from lang
//$success2 = File::delete($destinationPath.'/'.$name);
if ($success) {
//sending back with error message
Session::flash('fails', Lang::get('lang.zipp-error'));
Session::flash('link2', 'http://www.ladybirdweb.com/support/show/how-to-translate-faveo-into-multiple-languages');
//Checking if package already exists or not in lang folder
$path = base_path('resources/lang');
if (in_array(strtolower(Input::get('iso-code')), scandir($path))) {
return Redirect::back()->withInput();
//sending back with error message
Session::flash('fails', Lang::get('lang.package_exist'));
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
return Redirect::back()->withInput();
} elseif (!array_key_exists(strtolower(Input::get('iso-code')), Config::get('languages'))) {//Checking Valid ISO code form Languages.php
//sending back with error message
Session::flash('fails', Lang::get('lang.iso-code-error'));
return Redirect::back()->withInput();
} else {
// checking file is valid.
if (Input::file('File')->isValid()) {
$name = Input::file('File')->getClientOriginalName(); //uploaded file's original name
$destinationPath = base_path('public/uploads/'); // defining uploading path
$extractpath = base_path('resources/lang').'/'.strtolower(Input::get('iso-code')); //defining extracting path
mkdir($extractpath); //creating directroy for extracting uploadd file
//mkdir($destinationPath);
Input::file('File')->move($destinationPath, $name); // uploading file to given path
\Zipper::make($destinationPath.'/'.$name)->extractTo($extractpath); //extracting file to give path
//check if Zip extract foldercontains any subfolder
$directories = File::directories($extractpath);
//$directories = glob($extractpath. '/*' , GLOB_ONLYDIR);
if (!empty($directories)) { //if extract folder contains subfolder
$success = File::deleteDirectory($extractpath); //remove extracted folder and it's subfolder from lang
//$success2 = File::delete($destinationPath.'/'.$name);
if ($success) {
//sending back with error message
Session::flash('fails', Lang::get('lang.zipp-error'));
Session::flash('link2', 'http://www.ladybirdweb.com/support/show/how-to-translate-faveo-into-multiple-languages');
return Redirect::back()->withInput();
}
} else {
// sending back with success message
Session::flash('success', Lang::get('lang.upload-success'));
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
return Redirect::route('LanguageController');
}
} else {
// sending back with success message
Session::flash('success', Lang::get('lang.upload-success'));
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
// sending back with error message.
Session::flash('fails', Lang::get('lang.file-error'));
return Redirect::route('LanguageController');
return Redirect::route('form');
}
} else {
// sending back with error message.
Session::flash('fails', Lang::get('lang.file-error'));
return Redirect::route('form');
}
}
} catch (\Exception $e) {
Session::flash('fails', $e->getMessage());
Redirect::back()->withInput();
}
}

View File

@@ -41,6 +41,7 @@ use Illuminate\Http\Request;
use Input;
use Lang;
use Redirect;
use Datatables;
/**
* UserController
@@ -85,7 +86,6 @@ class UserController extends Controller
Lang::get('lang.email'),
Lang::get('lang.phone'),
Lang::get('lang.status'),
Lang::get('lang.ban'),
Lang::get('lang.last_login'),
Lang::get('lang.role'),
Lang::get('lang.action')) // these are the column headings to be shown
@@ -116,21 +116,42 @@ class UserController extends Controller
public function user_list(Request $request)
{
$type = $request->input('profiletype');
$search = $request->input('searchTerm');
if ($type == 'active') {
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 0)->get();
if ($type === 'agents') {
$users = User::where('role', '=', 'agent')->where('is_delete', '=', 0);
} elseif ($type === 'users') {
$users = User::where('role', '=', 'user')->where('is_delete', '=', 0);
} elseif ($type === 'active') {
$users = User::where('role', '!=', 'admin')->where('active', '=', 1);
} elseif ($type === 'inactive') {
$users = User::where('role', '!=', 'admin')->where('active', '=', 0);
} elseif ($type === 'deleted') {
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 1);
} elseif ($type === 'banned') {
$users = User::where('role', '!=', 'admin')->where('ban', '=', 1);
} else {
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 1)->get();
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 0);
}
$users = $users->select('user_name', 'email', 'mobile', 'active', 'updated_at', 'role', 'id', 'last_name', 'country_code', 'phone_number');
if ($search !== '') {
$users = $users->where(function($query) use ($search){
$query->where('user_name', 'LIKE', '%'.$search.'%');
$query->orWhere('email', 'LIKE', '%'.$search.'%');
$query->orWhere('first_name', 'LIKE', '%'.$search.'%');
$query->orWhere('last_name', 'LIKE', '%'.$search.'%');
$query->orWhere('mobile', 'LIKE', '%'.$search.'%');
$query->orWhere('updated_at', 'LIKE', '%'.$search.'%');
$query->orWhere('country_code', 'LIKE', '%'.$search.'%');
});
}
// displaying list of users with chumper datatables
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
return \Datatable::collection($users)
/* searchable column username and email */
->searchColumns('user_name', 'email', 'phone')
/* order column username and email */
->orderColumns('user_name', 'email')
return \Datatables::of($users)
/* column username */
->removeColumn('id', 'last_name', 'country_code', 'phone_number')
->addColumn('user_name', function ($model) {
if ($model->first_name) {
$string = strip_tags($model->first_name.' '.$model->last_name);
@@ -153,7 +174,7 @@ class UserController extends Controller
return $email;
})
/* column phone */
->addColumn('phone', function ($model) {
->addColumn('mobile', function ($model) {
$phone = '';
if ($model->phone_number) {
$phone = $model->ext.' '.$model->phone_number;
@@ -167,7 +188,7 @@ class UserController extends Controller
return $phone;
})
/* column account status */
->addColumn('status', function ($model) {
->addColumn('active', function ($model) {
$status = $model->active;
if ($status == 1) {
$stat = '<button class="btn btn-success btn-xs">Active</button>';
@@ -177,19 +198,8 @@ class UserController extends Controller
return $stat;
})
/* column ban status */
->addColumn('ban', function ($model) {
$status = $model->ban;
if ($status == 1) {
$stat = '<button class="btn btn-danger btn-xs">Banned</button>';
} else {
$stat = '<button class="btn btn-success btn-xs">Not Banned</button>';
}
return $stat;
})
/* column last login date */
->addColumn('lastlogin', function ($model) {
->addColumn('updated_at', function ($model) {
$t = $model->updated_at;
return TicketController::usertimezone($t);

View File

@@ -1148,5 +1148,12 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1585,5 +1585,11 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1556,5 +1556,12 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1108,4 +1108,11 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1602,4 +1602,11 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1547,4 +1547,12 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -1055,4 +1055,12 @@ return [
//update 18-12-2016
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
//update 19-12-2016
'only-agents' => 'Agent users',
'only-users' => 'Clients users',
'banned-users' => 'Banned users',
'inactive-users' => 'Inactive users',
'all-users' => 'All users',
'search' => 'Search...',
];

View File

@@ -34,20 +34,32 @@ class="active"
<div class="box-header with-border">
<div class="row">
<div>
<div class="col-md-6">
<h3 class="box-title ">{{Lang::get('lang.user')}}</h3>
</div>
<div class="col-md-6">
<div class="col-md-3">
<div class="col-md-5">
<div class="box-tools" style="width: 235px">
<div class="has-feedback">
<input type="text" class="form-control input-sm" id="search-text" name="search" placeholder="{{Lang::get('lang.search')}}">
<span class="fa fa-search form-control-feedback"></span>
</div>
</div><!-- /.box-tools -->
</div>
<div class="col-md-9">
<div class="col-md-7">
<div class="pull-right">
<div id="labels-div" class="btn-group">
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" id="labels-button"><i class="fa fa-eye" style="color:teal;"> </i>{{Lang::get('lang.view-option')}}<span class="caret"></span>
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" id="labels-button"><i class="fa fa-eye" style="color:teal;">&nbsp;</i>{{Lang::get('lang.view-option')}}<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#" class="active">{{Lang::get('lang.active-users')}}</a></li>
<li><a href="#" class="inactive">{{Lang::get('lang.deleted-users')}}</a></li>
<ul class="dropdown-menu role="menu">
<li class="active"><a href="#" class="all">{{Lang::get('lang.all-users')}}</a></li>
<li><a href="#" class="agents">{{Lang::get('lang.only-agents')}}</a></li>
<li><a href="#" class="users">{{Lang::get('lang.only-users')}}</a></li>
<li><a href="#" class="active-users">{{Lang::get('lang.active-users')}}</a></li>
<li><a href="#" class="inactive">{{Lang::get('lang.inactive-users')}}</a></li>
<li><a href="#" class="deleted">{{Lang::get('lang.deleted-users')}}</a></li>
<li><a href="#" class="banned">{{Lang::get('lang.banned-users')}}</a></li>
</ul>
</div>
<a href="{{url('user-export')}}" class="btn btn-default btn-sm ">Export</a>

View File

@@ -7,8 +7,9 @@ foreach($segments as $seg){
?>
<script type="text/javascript">
jQuery(document).ready(function () {
var show = 'active';
oTable = myFunction(show);
var show = 'all';
var searchTerm = '';
oTable = myFunction(show, searchTerm);
$("select[name=type_of_profile]").change(function () {
//alert($('select[name=type_of_profile]').val());
@@ -19,29 +20,73 @@ foreach($segments as $seg){
function myFunction(show)
{
return jQuery('#chumper').dataTable({
"sDom": "<'row'<'col-xs-6'l><'col-xs-6'>r>"+
"t"+
"<'row'<'col-xs-6'i><'col-xs-6'p>>",
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"ajax": {
url: "{{url('user-list')}}",
data: function (d) {
d.profiletype = show;
d.searchTerm = searchTerm;
}
}
});
}
$('.active').on('click', function(){
$('.all').on('click', function(){
show = 'all';
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
});
$('.active-users').on('click', function(){
show = 'active';
$("#chumper").dataTable().fnDestroy();
myFunction(show);
myFunction(show, searchTerm);
});
$('.inactive').on('click', function(){
show = 'inactive';
$("#chumper").dataTable().fnDestroy();
myFunction(show);
myFunction(show, searchTerm);
});
});
$('.agents').on('click', function(){
show = 'agents';
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
});
$('.users').on('click', function(){
show = 'users';
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
});
$('.banned').on('click', function(){
show = 'banned';
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
});
$('.deleted').on('click', function(){
show = 'deleted';
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
});
document.getElementById('search-text').onkeypress = function(e){
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == '13'){
searchTerm = $('input[name=search]').val();
$("#chumper").dataTable().fnDestroy();
myFunction(show, searchTerm);
}
}
});
</script>