Files
citrus-cms/resources/views/admin/users.blade.php
T

452 lines
14 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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