ikinci temizlik tamamlandı
This commit is contained in:
@@ -0,0 +1,472 @@
|
||||
@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;
|
||||
|
||||
$teams = db("subcontractors")->get()->pluck("company_name_en")->toArray();
|
||||
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',
|
||||
{
|
||||
dataField: 'subcontructer', // provides column values
|
||||
lookup: {
|
||||
dataSource: <?php echo json_encode_tr(db("subcontractors")->select("company_name_en")->get()->pluck("company_name_en")) ?>
|
||||
}
|
||||
},
|
||||
'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("Team")}}</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="subcontructer" data-id="{{$u->id}}" class="form-control edit" table="users">
|
||||
<option value="">{{e2("Select")}}</option>
|
||||
<?php
|
||||
foreach($teams AS $s) {
|
||||
?>
|
||||
<option value="{{$s}}" <?php if($u->subcontructer == $s) echo "selected"; ?>>{{$s}}</option>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</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
|
||||
Reference in New Issue
Block a user