452 lines
14 KiB
PHP
452 lines
14 KiB
PHP
@extends('admin.master')
|
||
@section("title",__("Users"))
|
||
@section("desc",__("Sistemde yer alan kullanıcıları bu bölümden yönetebilirsiniz"))
|
||
@section('content')
|
||
<?php
|
||
use Illuminate\Support\Facades\Request;
|
||
use Illuminate\Support\Facades\Input;
|
||
use App\Contents;
|
||
use App\Types;
|
||
use App\Fields;
|
||
use App\User;
|
||
|
||
try{
|
||
$seviye = Contents::where("slug","user-level")->first();
|
||
$seviye = strip_tags($seviye->html);
|
||
$seviye = explode(",",$seviye);
|
||
} catch (Exception $e) {
|
||
|
||
}
|
||
$seviye = level_keys();
|
||
// $seviye = explode("\n",$seviye);
|
||
|
||
|
||
?>
|
||
|
||
<div class="content">
|
||
<div class="row">
|
||
<?php if(getisset("id")) {
|
||
?>
|
||
@include("admin.users.detail")
|
||
<?php } ?>
|
||
</div>
|
||
<?php
|
||
$request = null;
|
||
if(getisset("q")) {
|
||
$request = Request::all();
|
||
$q = $request['q'];
|
||
|
||
$searchFields = ['name','email','phone','permissions','id'];
|
||
$users = User::where(function($query) use($request, $searchFields){
|
||
$searchWildcard = '%' . $request['q'] . '%';
|
||
foreach($searchFields as $field){
|
||
$query->orWhere($field, 'LIKE', $searchWildcard);
|
||
}
|
||
})
|
||
// ->where("id",">=",Auth::user()->id)
|
||
->simplePaginate(20);
|
||
|
||
} else {
|
||
$users = User::orderBy("id","DESC");
|
||
$users = $users->whereNotIn("level", ['Welder (Subcontractor)']);
|
||
//->where("id",">=",Auth::user()->id);
|
||
if(u()->level!="Admin") {
|
||
$users = $users->where("uid",u()->id);
|
||
}
|
||
$users = $users->simplePaginate(20);
|
||
}
|
||
|
||
$types = Types::all();
|
||
|
||
?>
|
||
<div class="block">
|
||
<div class="block-header block-header-default d-none">
|
||
<h3 class="block-title">
|
||
|
||
<form action="" method="get">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<div class="input-group">
|
||
<div class="input-group-prepend">
|
||
<button type="submit" class="btn btn-secondary">
|
||
<i class="fa fa-search"></i>
|
||
</button>
|
||
</div>
|
||
<input type="text" class="form-control" name="q" value="{{@$request['q']}}" placeholder="{{e2("Search")}}">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
</h3>
|
||
<div class="block-options">
|
||
<div class="block-options-item">
|
||
<a href="{{ url('admin-ajax/user-add') }}" class="btn btn-default"><i class="fa fa-plus"></i></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="block-content">
|
||
<div id="users-datagrid"></div>
|
||
<script>
|
||
$(function(){
|
||
var dataSource = new DevExpress.data.CustomStore({
|
||
key: "id",
|
||
load(loadOptions) {
|
||
const deferred = $.Deferred();
|
||
const args = {};
|
||
|
||
|
||
|
||
args['module'] = "{{$id}}";
|
||
|
||
$.ajax({
|
||
url: '?ajax=users',
|
||
dataType: 'json',
|
||
method: 'GET',
|
||
data: args,
|
||
success(result) {
|
||
deferred.resolve(result);
|
||
},
|
||
error(e) {
|
||
console.log("Data Loading Error");
|
||
console.log(e);
|
||
deferred.reject('{{e2("Data Loading Error")}}');
|
||
},
|
||
//timeout: 20000,
|
||
});
|
||
|
||
return deferred.promise();
|
||
},
|
||
insert: function(values) {
|
||
var deferred = $.Deferred();
|
||
values['_token'] = "{{ csrf_token() }}";
|
||
$.ajax({
|
||
url: "{{url("admin/insert/users")}}",
|
||
method: "POST",
|
||
data: values
|
||
})
|
||
.done(deferred.resolve)
|
||
.fail(function(e){
|
||
Swal.fire({
|
||
icon: 'error',
|
||
title: '{{e2("Error")}}',
|
||
text: e.responseJSON.message,
|
||
confirmButtonText: '{{e2("OK")}}'
|
||
});
|
||
deferred.reject("{{e2("Insertion failed")}}");
|
||
});
|
||
return deferred.promise();
|
||
},
|
||
remove: function(key) {
|
||
var deferred = $.Deferred();
|
||
$.ajax({
|
||
url: "{{url("admin/remove/users")}}",
|
||
data : {
|
||
'_token' : "{{ csrf_token() }}",
|
||
'key' : key,
|
||
},
|
||
method: "DELETE"
|
||
})
|
||
.done(function(e) {
|
||
var alert;
|
||
if(e.trim() == "1")
|
||
{
|
||
alert = "{{e2("Delete is ok")}}";
|
||
} else {
|
||
alert = e;
|
||
}
|
||
Swal.fire(alert);
|
||
|
||
return deferred.resolve();
|
||
})
|
||
.fail(function(e){
|
||
deferred.reject("Deletion failed");
|
||
});
|
||
return deferred.promise();
|
||
},
|
||
update: function(key, values) {
|
||
var deferred = $.Deferred();
|
||
|
||
// console.log("val" + values);
|
||
$.ajax({
|
||
url: "{{url("admin/save-json/users" )}}",
|
||
method: "PUT",
|
||
data: {
|
||
'_token' : "{{ csrf_token() }}",
|
||
values : values,
|
||
key : key
|
||
}
|
||
})
|
||
.done(function(e) {
|
||
//console.log(e);
|
||
//deferred.resolve;
|
||
return deferred.promise();
|
||
|
||
})
|
||
.fail(function(e){
|
||
deferred.reject("{{e2("Update failed")}}");
|
||
});
|
||
|
||
}
|
||
});
|
||
var users = $("#users-datagrid").dxDataGrid({
|
||
dataSource: dataSource,
|
||
filterRow: { visible: true },
|
||
searchPanel: { visible: false },
|
||
headerFilter: {
|
||
visible: true,
|
||
allowSearch: true,
|
||
},
|
||
export: {
|
||
enabled: true,
|
||
formats: ['xlsx'],
|
||
},
|
||
|
||
summary: {
|
||
groupItems: [{
|
||
summaryType: "count"
|
||
}]
|
||
},
|
||
columns : [
|
||
'name',
|
||
'name_ru',
|
||
'level',
|
||
'email',
|
||
'recover',
|
||
{
|
||
type: "buttons",
|
||
width: 100,
|
||
height:200,
|
||
fixed: true,
|
||
buttons: [
|
||
"delete",
|
||
{
|
||
|
||
text: "{{e2("Edit")}}",
|
||
icon: "edit",
|
||
hint: "{{e2("User Info Detail")}}",
|
||
onClick: function (e) {
|
||
console.log(e);
|
||
window.open('?id=' + e.row.data.id, "_self");
|
||
},
|
||
},
|
||
{
|
||
|
||
icon: "key",
|
||
hint: "{{e2("Reset Password")}}",
|
||
onClick: function (e) {
|
||
Swal.fire({
|
||
title: '{{e2("Are you sure?")}}',
|
||
icon: 'warning',
|
||
showCancelButton: true,
|
||
confirmButtonText: '{{e2("Yes")}}',
|
||
cancelButtonText: '{{e2("Cancel")}}',
|
||
}).then((result) => {
|
||
if (result.isConfirmed) {
|
||
console.log(e);
|
||
window.open('{{url('admin-ajax/password-update?id=')}}' + e.row.data.id, "_self");
|
||
}
|
||
});
|
||
},
|
||
},
|
||
{
|
||
|
||
icon: "login",
|
||
hint: "{{e2("Login This User")}}",
|
||
onClick: function (e) {
|
||
Swal.fire({
|
||
title: '{{e2("Are you sure?")}}',
|
||
icon: 'warning',
|
||
showCancelButton: true,
|
||
confirmButtonText: '{{e2("Yes")}}',
|
||
cancelButtonText: '{{e2("Cancel")}}',
|
||
}).then((result) => {
|
||
if (result.isConfirmed) {
|
||
console.log(e);
|
||
$.get('{{url('admin-ajax/login-by-id?id=')}}' + e.row.data.id, function(){
|
||
location.href='/admin';
|
||
});
|
||
}
|
||
});
|
||
},
|
||
},
|
||
]
|
||
},
|
||
],
|
||
|
||
paging: {
|
||
pageSize: 20,
|
||
},
|
||
showBorders: true,
|
||
allowColumnResizing: true,
|
||
columnAutoWidth: true,
|
||
allowColumnReordering: true,
|
||
showColumnLines: true,
|
||
columnFixing: {
|
||
enabled: true
|
||
},
|
||
selection: {
|
||
mode: 'single',
|
||
deferred: true,
|
||
},
|
||
groupPanel: { visible: false },
|
||
|
||
editing: {
|
||
allowUpdating: true,
|
||
allowAdding: true,
|
||
allowDeleting: true,
|
||
startEditAction: 'dblClick',
|
||
refreshMode: 'repaint',
|
||
mode: 'batch', // 'batch' | 'cell' | 'form' | 'popup',
|
||
|
||
|
||
},
|
||
onEditorPreparing(e) {
|
||
|
||
if(e.parentType == "dataRow") {
|
||
/*
|
||
if(e.dataField == "real_welder_1" || e.dataField == "real_welder_2") {
|
||
e.editorName = "dxSelectBox";
|
||
e.editorOptions.searchEnabled = true;
|
||
e.editorOptions.acceptCustomValue = false;
|
||
e.editorOptions.dataSource = '{{autocomplete_type("wqt*welder_1")}}?row=' + JSON.stringify(e.row.data);
|
||
} else {
|
||
e.editorOptions.readOnly = true;
|
||
}
|
||
|
||
|
||
*/
|
||
if(e.dataField == "level" ) {
|
||
e.editorName = "dxSelectBox";
|
||
e.editorOptions.searchEnabled = true;
|
||
e.editorOptions.acceptCustomValue = false;
|
||
e.editorOptions.dataSource = <?php echo json_encode_tr(level_keys()) ?>;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
},
|
||
onRowClick: function(e) {
|
||
if(e.rowType === "data") {
|
||
console.log(e);
|
||
}
|
||
|
||
|
||
}
|
||
});
|
||
window.setTimeout(function() {
|
||
users.dxDataGrid("instance").columnOption("date_start", "dataType", "date");
|
||
users.dxDataGrid("instance").columnOption("date_end", "dataType", "date");
|
||
users.dxDataGrid("instance").columnOption("date_of_birth", "dataType", "date");
|
||
|
||
}, 2000);
|
||
|
||
|
||
|
||
});
|
||
</script>
|
||
<div class="table-responsive d-none">
|
||
<table class="table table-bordered table-hover table-striped table-sm">
|
||
<tr>
|
||
<td>{{e2("ID")}}</td>
|
||
<td>{{e2("Name")}}</td>
|
||
<td>{{e2("Level")}}</td>
|
||
<td>{{e2("E-Mail")}}</td>
|
||
<td>{{e2("Phone")}}</td>
|
||
<td>{{e2("Permissions")}}</td>
|
||
<td>{{e2("Password")}}</td>
|
||
<td>{{e2("Recovery Pwd.")}}</td>
|
||
<td>{{e2("Workgroup")}}</td>
|
||
<td>{{e2("İşlem")}}</td>
|
||
</tr>
|
||
@foreach($users AS $u)
|
||
@php
|
||
$permissions = explode(",",$u->permissions);
|
||
@endphp
|
||
<tr>
|
||
<td>{{$u->id}}</td>
|
||
<td>
|
||
<input type="text" name="name" value="{{$u->name}}" table="users" data-id="{{$u->id}}" class="name{{$u->id}} form-control edit" />
|
||
</td>
|
||
<td>
|
||
<select name="level"data-id="{{$u->id}}" table="users" class="form-control edit">
|
||
@if($seviye!=null)
|
||
<option value="">Select</option>
|
||
@foreach($seviye AS $l)
|
||
<?php $l = trim($l); ?>
|
||
|
||
<?php
|
||
if($l=="Admin") { //eğer admin kullanıcısı ise admin gösterimine izin ver.
|
||
if(u()->level=="Admin") { ?>
|
||
<option value="{{$l}}" @if($u->level==$l) selected @endif>{{e2($l)}}</option>
|
||
<?php } ?>
|
||
<?php } else {
|
||
?>
|
||
<option value="{{$l}}" @if($u->level==$l) selected @endif>{{e2($l)}}</option>
|
||
<?php
|
||
} ?>
|
||
@endforeach
|
||
@endif
|
||
</select>
|
||
</td>
|
||
<td><input type="text" name="email" value="{{$u->email}}" table="users"data-id="{{$u->id}}" class="email{{$u->id}} form-control edit" /></td>
|
||
<td><input type="text" name="phone" value="{{$u->phone}}" table="users"data-id="{{$u->id}}" class="phone{{$u->id}} form-control edit" /></td>
|
||
<td>
|
||
<button class="btn btn-secondary btn-sm btn-block" data-toggle="collapse" data-target="#permissions{{$u->id}}">{{e2("Select")}}</button>
|
||
|
||
<div id="permissions{{$u->id}}" class="collapse">
|
||
<form action="{{url('admin-ajax/permission-update')}}" method="post">
|
||
@csrf
|
||
<select name="permissions[]" multiple id="" class="select2" style="width:250px">
|
||
@if($types!=null)
|
||
@foreach($types AS $t)
|
||
<?php
|
||
$ust = "";
|
||
if($t->kid!="") {
|
||
$ust = slugtotitle($t->kid). " / ";
|
||
} ?>
|
||
<option value="{{$t->title}}" @if(in_array($t->title,$permissions)) selected @endif>{{$ust}}{{$t->title}}</option>
|
||
@endforeach
|
||
@endif
|
||
@foreach(diger_ayarlar() AS $d)
|
||
|
||
<option value="{{$d}}" @if(in_array($d,$permissions)) selected @endif>{{$d}}</option>
|
||
@endforeach
|
||
</select>
|
||
<input type="hidden" name="id" value="{{$u->id}}" />
|
||
<button class="btn btn-default" title=""><i class="fa fa-sync"></i> {{__('Update Permissions')}}</button>
|
||
</form>
|
||
</div>
|
||
|
||
|
||
</td>
|
||
|
||
<td><a href="{{url('admin-ajax/password-update?id='.$u->id)}}" title="{{__('Reset user\'s password')}}" class="btn btn-default btn-sm"><i class="fa fa-sync"></i> {{e2("Reset Password")}}</button></td>
|
||
<td>{{$u->recover}}</td>
|
||
<td><input type="text" name="alias" value="{{$u->alias}}" table="users"data-id="{{$u->id}}" class="alias{{$u->id}} form-control edit" /></td>
|
||
|
||
<td>
|
||
<div class="dropdown">
|
||
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||
{{e2("Opr.")}}
|
||
</button>
|
||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||
<a class="dropdown-item" href="#"><i class="fa fa-lock"></i> {{e2("Login")}}</a>
|
||
<a class="dropdown-item" href="?id={{$u->id}}" ><i class="fa fa-pen"></i> {{e2("User Info")}}</a>
|
||
<a class="dropdown-item" teyit="{{$u->adi}} {$u->soyadi} {{e2("Are you sure delete this user?")}}" href="{{url('admin-ajax/user-delete?id='.$u->id)}}">
|
||
<i class="fa fa-times"></i>
|
||
{{e2("Delete")}}</a>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
</table>
|
||
{{$users->fragment('users')->links() }}
|
||
</div>
|
||
</div>
|
||
@endsection
|