ikinci temizlik tamamlandı

This commit is contained in:
Ümit Tunç
2026-04-28 21:15:09 +03:00
parent f80443aec0
commit 37e7296527
8313 changed files with 2400677 additions and 0 deletions
+472
View File
@@ -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