mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-13 11:41:31 +00:00
Build modified streamline images
The official image from streamline does not currently work for the arm64 platform. As a temporary measure, the source code and docker build scripts have been lifted from the official images and are used to build locally. Some additional modifications are made to reduce overall image size, these are documented in docker/README.md
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/bower_components/custom-select/custom-select.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('js/password-strength-check/password-check.css') }}" rel="stylesheet" type="text/css" />
|
||||
<!--<link href=" asset('elite/bower_components/multiselect/css/multi-select.css') " rel="stylesheet" type="text/css" />-->
|
||||
<style type="text/css">
|
||||
.pin{
|
||||
-webkit-text-security: square;
|
||||
-moz-text-security:square;
|
||||
text-security:square;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">{{ __('users.new_user') }}</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
|
||||
<li><a href="{{ route('users.index') }}">{{ __('users.users') }}</a></li>
|
||||
<li class="active">{{ __('users.register') }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
|
||||
@include('users.menu')
|
||||
|
||||
<!-- .row -->
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
{{ __('users.add_user_error') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="white-box">
|
||||
{{ Form::open(['route' => 'users.store','id'=>'register','method'=>'POST','enctype'=>'multipart/form-data','data-toggle'=>'validator','autocomplete'=>'off']) }}
|
||||
{{ csrf_field() }}
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('first_name',__('users.first_name')) }}
|
||||
{{ Form::text('first_name','',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('last_name',__('users.last_name')) }}
|
||||
{{ Form::text('last_name','',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('phone',__('users.phone_number')) }}
|
||||
{{ Form::text('phone','',['class' => 'form-control','data-mask'=>"0799 999 999"]) }}
|
||||
<span class="font-13 text-muted">(07xx) 123-456</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('email',__('users.email_address')) }}
|
||||
{{ Form::email('email','',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('position_id',__('users.position')) }}
|
||||
{{ Form::select('position_id',$positions,'',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('photo',__('users.photo')) }}
|
||||
{{ Form::file('photo',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label("council_registration",__('users.any_council_registration')) }}<br>
|
||||
{{ Form::radio('council_registration',1,'',['class'=>'council_radio', 'required']) }} {{ __('users.yes') }}
|
||||
{{ Form::radio('council_registration',0,'',['class'=>'council_radio', 'required']) }} {{ __('users.no') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('council_id',__('users.council_name')) }}
|
||||
{{ Form::select('council_id',$councils,'',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('registration_number',__('users.registration_number')) }}
|
||||
{{ Form::text('registration_number','',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('expiry_date',__('users.expiry_date')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('expiry_date',null,['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
{{ Form::label('blood_group_id',__('users.blood_group')) }}
|
||||
{{ Form::select('blood_group_id',$blood_groups,'',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label("willing_to_donate",__('users.are_willing_to_donate')) }}<br>
|
||||
{{ Form::radio('willing_to_donate',1, ['required']) }} {{ __('users.yes') }}
|
||||
{{ Form::radio('willing_to_donate',0, ['required']) }} {{ __('users.no') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('last_donation_date',__('users.when_last_donation')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('last_donation_date','',['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('roles[]',__('users.roles_on_streamline')) }}
|
||||
{{ Form::select('roles[]',$roles,[],['class' => 'roles compulsory select2 m-b-10 select2-multiple', 'multiple','data-placeholder'=>'- select role -']) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
{{ Form::label('username',__('users.username')) }}
|
||||
{{ Form::text('username','',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('password',__('users.password')) }}
|
||||
{{ Form::password('password',['class' => 'form-control compulsory']) }}
|
||||
<span id="result"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('password_confirm',__('users.confirm_password')) }}
|
||||
{{ Form::password('password_confirmation',['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('pin',__('users.secret_pin')) }}
|
||||
{{ Form::number('pin',null,['class' => 'form-control pin','placeholder'=>'eg 12345','maxlength'=>'5','minlength'=>'5']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('security_question_id',__('users.security_question')) }}
|
||||
{{ Form::select('security_question_id',$security_questions,'',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('security_answer',__('users.security_answer')) }}
|
||||
{{ Form::text('security_answer','',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-8"><hr></div>
|
||||
<div class="col-md-4">
|
||||
{{ Form::button(__('users.submit'),['type'=>'submit','class'=>'btn btn-success waves-effect waves-light m-r-10']) }}
|
||||
{{ Form::button(__('users.cancel'),['type'=>'reset','class'=>'btn btn-default waves-effect waves-light']) }}
|
||||
</div>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="{{ asset('elite/js/mask.js') }}"></script>
|
||||
|
||||
<!-- Date Picker Plugin JavaScript -->
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('elite/bower_components/custom-select/custom-select.min.js') }}"></script>
|
||||
<!--<script type="text/javascript" src=" asset('elite/bower_components/multiselect/js/jquery.multi-select.js')"></script>-->
|
||||
|
||||
<script type="text/javascript">
|
||||
$('document').ready(function () {
|
||||
|
||||
$('.datepicker').datepicker({
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format: 'dd/mm/yyyy',
|
||||
});
|
||||
$('.council_radio').click(function (){
|
||||
|
||||
if ($(this).val() === '1'){
|
||||
$('.council_hide').show()
|
||||
}
|
||||
else{
|
||||
$('.council_hide').hide();
|
||||
}
|
||||
|
||||
});
|
||||
// For multiselect
|
||||
$('.roles').select2();
|
||||
// $('.roles').multiSelect();
|
||||
// $('.roles').multiSelect({
|
||||
// selectableOptgroup: true
|
||||
// });
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript" src="{{ asset('js/password-strength-check/password-check.js') }}"></script>
|
||||
@endpush
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/bower_components/custom-select/custom-select.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('js/password-strength-check/password-check.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
.pin{
|
||||
-webkit-text-security: square;
|
||||
-moz-text-security:square;
|
||||
text-security:square;
|
||||
}
|
||||
</style>
|
||||
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">{{ __('users.edit_user') }}</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
|
||||
<li><a href="{{ route('users.index') }}">{{ __('users.users') }}</a></li>
|
||||
<li class="active">{{ __('users.edit_user') }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
|
||||
@include('users.menu')
|
||||
|
||||
<!-- .row -->
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
{{ __('users.add_user_error') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="white-box">
|
||||
{{ Form::model($user, ['method' => 'PATCH','id'=>'register','enctype'=>'multipart/form-data','autocomplete'=>'off','route' => ['users.update', $user->id]]) }}
|
||||
|
||||
{{ csrf_field() }}
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('first_name',__('users.first_name')) }}
|
||||
{{ Form::text('first_name',null,['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('last_name',__('users.last_name')) }}
|
||||
{{ Form::text('last_name',null,['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('phone',__('users.phone_number')) }}
|
||||
{{ Form::text('phone',null,['class' => 'form-control','data-mask'=>"0799 999 999"]) }}
|
||||
<span class="font-13 text-muted">(07xx) 123-456</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('email',__('users.email_address')) }}
|
||||
{{ Form::email('email',null,['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('position_id',__('users.position')) }}
|
||||
{{ Form::select('position_id',$positions,null,['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('photo',__('users.photo')) }}
|
||||
{{ Form::file('photo',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label("council_registration",__('users.any_council_registration')) }}<br>
|
||||
{{ Form::radio('council_registration',1,null,['class'=>'council_radio']) }} {{ __('users.yes') }}
|
||||
{{ Form::radio('council_registration',0,null,['class'=>'council_radio']) }} {{ __('users.no') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('council_id',__('users.council_name')) }}
|
||||
{{ Form::select('council_id',$councils,null,['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('registration_number',__('users.registration_number')) }}
|
||||
{{ Form::text('registration_number',null,['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group council_hide" style="display: none;">
|
||||
{{ Form::label('expiry_date',__('users.expiry_date')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('expiry_date',null,['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('blood_group_id',__('users.blood_group')) }}
|
||||
{{ Form::select('blood_group_id',$blood_groups,null,['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label("willing_to_donate",__('users.are_willing_to_donate')) }}<br>
|
||||
{{ Form::radio('willing_to_donate',1,true) }} {{ __('users.yes') }}
|
||||
{{ Form::radio('willing_to_donate',0,false) }} {{ __('users.no') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('last_donation_date',__('users.when_last_donation')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('last_donation_date',null,['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(Auth::user()->can('edit-users-role'))
|
||||
<div class="form-group">
|
||||
{{ Form::label('roles[]',__('users.roles_on_streamline')) }}
|
||||
{{ Form::select('roles[]',$roles,$userRole,['class' => 'compulsory roles select2 m-b-10 select2-multiple', 'multiple']) }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
{{ Form::label('username',__('users.username')) }}
|
||||
{{ Form::text('username',null,['class' => 'form-control compulsory']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('password',__('users.password')) }}
|
||||
{{ Form::password('password',['class' => 'form-control']) }}
|
||||
<span id="result"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('password_confirm',__('users.confirm_password')) }}
|
||||
{{ Form::password('password_confirmation',['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('pin',__('users.secret_pin')) }}
|
||||
{{ Form::number('pin',null,['class' => 'form-control compulsory pin','placeholder'=>'eg 12345','maxlength'=>'5','minlength'=>'5']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('security_question_id',__('users.security_question')) }}
|
||||
{{ Form::select('security_question_id',$security_questions,null,['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{{ Form::label('security_answer',__('users.security_answer')) }}
|
||||
{{ Form::text('security_answer',null,['class' => 'form-control']) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-8"><hr></div>
|
||||
<div class="col-md-4">
|
||||
{{ Form::button(__('users.submit'),['type'=>'submit','class'=>'btn btn-success waves-effect waves-light m-r-10']) }}
|
||||
{{ Form::button(__('users.cancel'),['type'=>'reset','class'=>'btn btn-default waves-effect waves-light']) }}
|
||||
</div>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="{{ asset('elite/js/mask.js') }}"></script>
|
||||
|
||||
<!-- Date Picker Plugin JavaScript -->
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('elite/bower_components/custom-select/custom-select.min.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery('.datepicker').datepicker({
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format: 'dd/mm/yyyy',
|
||||
});
|
||||
$('document').ready(function () {
|
||||
$('.council_radio').click(function () {
|
||||
$(this).val() === '1' ? $('.council_hide').show() : $('.council_hide').hide();
|
||||
});
|
||||
$('.roles').select2();
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript" src="{{ asset('js/password-strength-check/password-check.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('/elite/bower_components/datatables/jquery.dataTables.min.css') }}" rel="stylesheet"
|
||||
type="text/css" />
|
||||
<link href="{{ asset('elite/tables/css/buttons.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet"
|
||||
type="text/css" />
|
||||
|
||||
<style>
|
||||
th,
|
||||
td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">Failed Logins</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('audit_trail.dashboard') }}</a></li>
|
||||
<li class="active">Failed Logins</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('audit_trail.menu')
|
||||
|
||||
<div class="white-box">
|
||||
{{ Form::open(['route' => 'audit_trail.failed_logins_search']) }}
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
{{ Form::label('date_range', __('audit_trail.select_the_date')) }}
|
||||
<select class="form-control compulsory required" name="dates" id="dates" required>
|
||||
<option value="ALL">{{ __('audit_trail.all_dates') }}</option>
|
||||
<option value="today" selected>{{ __('audit_trail.today') }}</option>
|
||||
<option value="yesterday">{{ __('audit_trail.yesterday') }}</option>
|
||||
<option value="week">{{ __('audit_trail.last_7') }}</option>
|
||||
<option value="month">{{ __('audit_trail.last_30') }}</option>
|
||||
<option value="custom-date">{{ __('audit_trail.custom_date') }}</option>
|
||||
<option value="custom-range">{{ __('audit_trail.date_range') }}</option>
|
||||
</select>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3" style="display: none;" id="start-date-div">
|
||||
<div class="form-group">
|
||||
{{ Form::label('start_date', __('audit_trail.date_from')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('start_date', '', ['class' => 'form-control compulsory', 'required', 'readonly', 'id'
|
||||
=> 'datepicker-from']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3" style="display: none;" id="end-date-div">
|
||||
<div class="form-group">
|
||||
{{ Form::label('end_date', __('audit_trail.date_to')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('end_date', '', ['class' => 'form-control compulsory', 'required', 'readonly', 'id' =>
|
||||
'datepicker-to']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
{{ Form::button(__('audit_trail.search'), ['type' => 'submit', 'class' => 'btn btn-success waves-effect
|
||||
waves-light m-r-10']) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-10"></div>
|
||||
</div>
|
||||
{{ Form::close() }}
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
@if(count($failed_logins) > 0)
|
||||
<div class="row" style="float: right;">
|
||||
<div class="col-sm-3">
|
||||
{{ Form::open(['method'=>'post','route' => 'failed_login_print']) }}
|
||||
{{ Form::hidden('data', json_encode($failed_logins)) }}
|
||||
{{ Form::submit('Print', ['style' => 'float: right;', 'class'=>'btn btn-success btn-success']) }}
|
||||
{{ Form::close() }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="white-box">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No.</th>
|
||||
<th>Name</th>
|
||||
<th>Email</th>
|
||||
<th>IP Address</th>
|
||||
<th>Time & Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php $counter = 1; @endphp
|
||||
@foreach($failed_logins as $failed_login)
|
||||
@php
|
||||
$date = Carbon\Carbon::parse($failed_login->created_at);
|
||||
$now = Carbon\Carbon::now();
|
||||
$user = Streamline\Models\User::where('id', $failed_login->user_id)->select('first_name',
|
||||
'last_name')->first();
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ $counter }}</td>
|
||||
<td>{{ $user->first_name }} {{ $user->last_name }}</td>
|
||||
<td>{{ $failed_login->email_address }}</td>
|
||||
<td>{{ $failed_login->ip_address }}</td>
|
||||
<td>{{ streamline_date_time($failed_login->created_at) }} ({{ $date->diffForHumans() }})
|
||||
</td>
|
||||
</tr>
|
||||
@php $counter++; @endphp
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{ $failed_logins->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="{{ asset('elite/bower_components/datatables/jquery.dataTables.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('elite/tables/js/dataTables.buttons.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.flash.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/jszip.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/pdfmake.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/vfs_fonts.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.html5.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.print.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bower_components/select2/select2.min.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function hide(id) {
|
||||
document.getElementById(id).style.display = 'none';
|
||||
}
|
||||
|
||||
function show(id) {
|
||||
if (document.getElementById(id).style.display === 'none') {
|
||||
document.getElementById(id).style.display = '';
|
||||
}
|
||||
}
|
||||
|
||||
$('#datepicker-from, #datepicker-to').datepicker({
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format: 'dd-mm-yyyy',
|
||||
});
|
||||
$('.table').DataTable({
|
||||
dom: 'Bfrtip',
|
||||
bInfo: false,
|
||||
bPaginate: false,
|
||||
buttons: [{
|
||||
extend: 'copy',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Failed Logins'
|
||||
},
|
||||
{
|
||||
extend: 'csv',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Failed Logins'
|
||||
},
|
||||
{
|
||||
extend: 'pdf',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Failed Logins'
|
||||
},
|
||||
{
|
||||
extend: 'print',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Failed Logins'
|
||||
}
|
||||
]
|
||||
});
|
||||
$('#dates').change(function() {
|
||||
var val = $(this).val();
|
||||
switch (val) {
|
||||
case 'custom-date':
|
||||
$('#end-date-div').hide();
|
||||
$('#start-date-div').show();
|
||||
break;
|
||||
case 'custom-range':
|
||||
$('#end-date-div').show();
|
||||
$('#start-date-div').show();
|
||||
break;
|
||||
default:
|
||||
$('#end-date-div').hide();
|
||||
$('#start-date-div').hide();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
$('.user_id,.action_performed,.records_affected').select2({
|
||||
placeholder: "-select-"
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,89 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('/elite/bower_components/datatables/jquery.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/tables/css/buttons.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">{{ __('users.inactive_users') }}</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
|
||||
<li><a href="{{ route('users.index') }}">{{ __('users.users') }}</a></li>
|
||||
<li class="active">{{ __('users.inactive') }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
@include('users.menu')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('flash::message')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="white-box">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('users.users') }}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>{{ __('users.users') }}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
@foreach($users as $user)
|
||||
<tr>
|
||||
<td>{{ $user->first_name }} {{ $user->last_name }}</td>
|
||||
<td>
|
||||
{{ Form::model($user->id ,['method' => 'POST', 'route' => ['users.activate', $user->id]]) }}
|
||||
<button type="submit" class="btn btn-warning" onclick="return confirm('<?php echo __('users.are_you_sure');?>')"><i class="fa fa-check"></i> {{ __('users.activate') }}</button>
|
||||
{{ Form::close() }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script src="{{ asset('elite/bower_components/datatables/jquery.dataTables.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('elite/tables/js/dataTables.buttons.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.flash.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/jszip.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/pdfmake.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/vfs_fonts.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.html5.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.print.min.js') }}"></script>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
$('.table').DataTable({
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
'copy', 'csv', 'excel', 'pdf', 'print'
|
||||
]
|
||||
});
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
+203
@@ -0,0 +1,203 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/bower_components/typeahead.js-master/dist/typehead-min.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('/elite/bower_components/datatables/jquery.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/tables/css/buttons.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">{{ __('users.user_management') }}</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
|
||||
<li class="active">{{ __('users.users') }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
|
||||
<!-- .row -->
|
||||
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
<!--<div class="white-box">-->
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@include('users.menu')
|
||||
|
||||
<div class="white-box">
|
||||
{{ Form::open(['route' => 'find_users_by_role']) }}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-11">
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
{{ Form::label('role', __('Search by role')) }}
|
||||
<select class="form-control compulsory" name="role">
|
||||
@foreach($roles as $role)
|
||||
<option value="{{ $role->id }}">{{ $role->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1">
|
||||
{{ Form::button(__('audit_trail.search'), ['type' => 'submit', 'class' => 'btn btn-success waves-effect
|
||||
waves-light m-r-10']) }}
|
||||
</div>
|
||||
</div>
|
||||
{{ Form::close() }}
|
||||
</div>
|
||||
|
||||
<div class="white-box">
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table color-table success-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{ __('users.names') }}</th>
|
||||
<th>{{ __('users.username') }}</th>
|
||||
<th>{{ __('users.phone_number') }}</th>
|
||||
<th>{{ __('users.position') }}</th>
|
||||
<th>{{ __('users.roles') }}</th>
|
||||
<th>Last Logged In/Status</th>
|
||||
<th>Created By</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($data as $key => $user)
|
||||
@php
|
||||
$last_seen = Carbon\Carbon::parse($user->last_seen);
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ ++$i }}</td>
|
||||
<td>{{ $user->first_name }} {{ $user->last_name }}</td>
|
||||
<td>{{ $user->username }}</td>
|
||||
<td>{{ $user->phone }}</td>
|
||||
<td>{{ isset($positions[$user->position_id]) ? $positions[$user->position_id] : "N/A" }}</td>
|
||||
<td>
|
||||
@if(!empty($user->getRoleNames()))
|
||||
@foreach($user->getRoleNames() as $v)
|
||||
<span class="label label-success label-rounded badge">{{ $v }}</span>
|
||||
@endforeach
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if(Cache::has('user-is-online-' . $user->id))
|
||||
<span class="badge badge-success">Online</span>
|
||||
@else
|
||||
{{ $last_seen->diffForHumans() }}
|
||||
<span class="badge badge-danger">Offline</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ get_full_name($user->created_by, 'id', 'first_name', 'last_name', 'users') }} at {{ streamline_date_time($user->created_at) }}</td>
|
||||
<td>
|
||||
<a class="fcbtn btn btn-success btn-sm btn-1c" href="{{ route('users.show',$user->id) }}">{{ __('users.details') }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-info btn-sm" href="{{ route('users.edit',$user->id) }}">{{ __('users.edit') }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{!! Form::open(['method' => 'DELETE','route' => ['users.destroy', $user->id],'style'=>'display:inline']) !!}
|
||||
{!! Form::submit(__('users.delete'), ['class' => 'btn btn-danger btn-sm']) !!}
|
||||
{!! Form::close() !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{-- {!! $data->render() !!}--}}
|
||||
|
||||
</div>
|
||||
|
||||
<!-- /.row -->
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<!-- Data table javascript -->
|
||||
<script src="{{ asset('elite/bower_components/datatables/jquery.dataTables.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/dataTables.buttons.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.flash.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/jszip.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/pdfmake.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/vfs_fonts.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.html5.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.print.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.colVis.min.js') }}"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$('document').ready(function () {
|
||||
$('.table').DataTable({
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
'copy',
|
||||
{extend: 'csv',
|
||||
message: '<?php echo __('users.list_of_users');?>',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
},
|
||||
{extend: 'excel',
|
||||
message: '<?php echo __('users.list_of_users');?>',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
sheetName: '<?php echo __('users.list_of_users');?>'
|
||||
},
|
||||
{extend: 'pdf',
|
||||
message: '<?php echo __('users.list_of_users');?>',
|
||||
orientation: 'portrait',
|
||||
pageSize: 'LETTER',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
customize: function (doc) {
|
||||
doc.defaultStyle.fontSize = 10;
|
||||
// doc.styles.tableHeader.alignment = 'left';
|
||||
}
|
||||
},
|
||||
{extend: 'print',
|
||||
message: '<?php echo __('users.list_of_users');?>',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
customize: function (win) {
|
||||
$(win.document.body)
|
||||
.css('font-size', '10pt')
|
||||
.css('background', '#fff')
|
||||
.prepend(
|
||||
'<img src="<?php echo asset('uploads/logo/logo-sm.png'); ?>" style="position:absolute; top:0; right:0;" />'
|
||||
);
|
||||
$(win.document.body).find('table')
|
||||
.addClass('compact')
|
||||
.css('font-size', 'inherit');
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
$('.sorting').removeClass('sorting');//remove the sorting class
|
||||
$('.sorting_asc').removeClass('sorting_asc');//remove the sorting class
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<a href="{{ route('users.create') }}" class="nav-item btn btn-default ti-plus"> {{ __('users.new_user') }}</a>
|
||||
<a href="{{ route('users.index') }}" class="nav-item btn btn-default ti-pencil"> {{ __('users.view_users') }}</a>
|
||||
<a href="{{ route('users.inactive') }}" class="nav-item btn btn-default ti-pencil"> {{ __('users.inactive_users') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,219 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('/elite/bower_components/datatables/jquery.dataTables.min.css') }}" rel="stylesheet"
|
||||
type="text/css" />
|
||||
<link href="{{ asset('elite/tables/css/buttons.dataTables.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet"
|
||||
type="text/css" />
|
||||
|
||||
<style>
|
||||
th,
|
||||
td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">Online Users</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('audit_trail.dashboard') }}</a></li>
|
||||
<li class="active">Online Users</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
@include('audit_trail.menu')
|
||||
|
||||
<div class="white-box">
|
||||
@if(count($users) > 0)
|
||||
<div class="row" style="float: right;">
|
||||
<div class="col-sm-3">
|
||||
{{ Form::open(['method'=>'post','route' => 'online_user_print']) }}
|
||||
{{ Form::hidden('data', json_encode($users)) }}
|
||||
{{ Form::submit('Print', ['style' => 'float: right;', 'class'=>'btn btn-success btn-success']) }}
|
||||
{{ Form::close() }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
{{ Form::open(['route' => 'audit_trail.online_users_search']) }}
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
{{ Form::label('date_range', __('audit_trail.select_the_date')) }}
|
||||
<select class="form-control compulsory required" name="dates" id="dates" required>
|
||||
<option value="ALL">{{ __('audit_trail.all_dates') }}</option>
|
||||
<option value="today" selected>{{ __('audit_trail.today') }}</option>
|
||||
<option value="yesterday">{{ __('audit_trail.yesterday') }}</option>
|
||||
<option value="week">{{ __('audit_trail.last_7') }}</option>
|
||||
<option value="month">{{ __('audit_trail.last_30') }}</option>
|
||||
<option value="custom-date">{{ __('audit_trail.custom_date') }}</option>
|
||||
<option value="custom-range">{{ __('audit_trail.date_range') }}</option>
|
||||
</select>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3" style="display: none;" id="start-date-div">
|
||||
<div class="form-group">
|
||||
{{ Form::label('start_date', __('audit_trail.date_from')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('start_date', '', ['class' => 'form-control compulsory', 'required', 'readonly', 'id'
|
||||
=> 'datepicker-from']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3" style="display: none;" id="end-date-div">
|
||||
<div class="form-group">
|
||||
{{ Form::label('end_date', __('audit_trail.date_to')) }}
|
||||
<div class="input-group">
|
||||
{{ Form::text('end_date', '', ['class' => 'form-control compulsory', 'required', 'readonly', 'id' =>
|
||||
'datepicker-to']) }}
|
||||
<span class="input-group-addon"><i class="icon-calender"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
{{ Form::button(__('audit_trail.search'), ['type' => 'submit', 'class' => 'btn btn-success waves-effect
|
||||
waves-light m-r-10']) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-9"></div>
|
||||
</div>
|
||||
{{ Form::close() }}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="white-box">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Name</th>
|
||||
<th>Email</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$counter = 1;
|
||||
@endphp
|
||||
@foreach($users as $user)
|
||||
@php
|
||||
$now = \Carbon\Carbon::now();
|
||||
$check_online_status = \Carbon\Carbon::parse($user->last_seen)->diffInDays(\Carbon\Carbon::parse($now));
|
||||
@endphp
|
||||
@if($check_online_status == 0)
|
||||
<tr>
|
||||
<td>{{ $user->id }}</td>
|
||||
<td>{{ $user->first_name }} {{ $user->last_name }}</td>
|
||||
<td>{{ $user->email }}</td>
|
||||
<td>
|
||||
@if(Cache::has('user-is-online-' . $user->id))
|
||||
<span class="badge badge-success">Online</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@php $counter++; @endphp
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{ $users->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="{{ asset('elite/bower_components/datatables/jquery.dataTables.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('elite/tables/js/dataTables.buttons.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.flash.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/jszip.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/pdfmake.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/vfs_fonts.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.html5.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/tables/js/buttons.print.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bower_components/select2/select2.min.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#datepicker-from, #datepicker-to').datepicker({
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format: 'dd-mm-yyyy',
|
||||
});
|
||||
$('.table').DataTable({
|
||||
dom: 'Bfrtip',
|
||||
bInfo: false,
|
||||
bPaginate: false,
|
||||
buttons: [{
|
||||
extend: 'copy',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Audit Trail'
|
||||
},
|
||||
{
|
||||
extend: 'csv',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Audit Trail'
|
||||
},
|
||||
{
|
||||
extend: 'pdf',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Audit Trail'
|
||||
},
|
||||
{
|
||||
extend: 'print',
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4]
|
||||
},
|
||||
title: 'Audit Trail'
|
||||
}
|
||||
]
|
||||
});
|
||||
$('#dates').change(function() {
|
||||
|
||||
var val = $(this).val();
|
||||
switch (val) {
|
||||
case 'custom-date':
|
||||
$('#end-date-div').hide();
|
||||
$('#start-date-div').show();
|
||||
break;
|
||||
case 'custom-range':
|
||||
$('#end-date-div').show();
|
||||
$('#start-date-div').show();
|
||||
break;
|
||||
default:
|
||||
$('#end-date-div').hide();
|
||||
$('#start-date-div').hide();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
$('.user_id,.action_performed,.records_affected').select2({
|
||||
placeholder: "-select-"
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ app()->getLocale() }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="icon" type="assetimage/png" sizes="16x16" href="{{ asset('uploads/streamline/color/streamline_icon-02.png') }}">
|
||||
<title>{{ config('app.name') }}</title>
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="{{ asset('elite/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-extension/css/bootstrap-extension.css') }}" rel="stylesheet">
|
||||
<!-- animation CSS -->
|
||||
<link href="{{ asset('elite/css/animate.css') }}" rel="stylesheet">
|
||||
<!-- Custom CSS -->
|
||||
<link href="{{ asset('elite/css/style.css') }}" rel="stylesheet">
|
||||
<!-- color CSS -->
|
||||
<link href="{{ asset('elite/css/colors/megna.css') }}" id="theme" rel="stylesheet">
|
||||
|
||||
<!-- Streamline - custom -->
|
||||
<link href="{{ asset('css/streamline-custom.css') }}" id="theme" rel="stylesheet">
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<!-- Preloader -->
|
||||
<div class="preloader">
|
||||
<div class="cssload-speeding-wheel"></div>
|
||||
</div>
|
||||
<section id="wrapper" class="login-register" style="background:url(../../uploads/login/login-register1.jpg) center center/cover no-repeat!important;">
|
||||
<div class="login-box login-sidebar" style="width: 550px;">
|
||||
<div class="white-box">
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
<!--<div class="white-box">-->
|
||||
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="panel-heading"><b>{{ __('users.password_expired') }}</b></div>
|
||||
|
||||
<div class="panel-body">
|
||||
@if (session('error'))
|
||||
<div class="alert alert-danger">
|
||||
{{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
@if (session('message'))
|
||||
<div class="alert alert-info">
|
||||
{{ session('message') }}
|
||||
</div>
|
||||
@endif
|
||||
<form class="form-horizontal" method="POST" action="{{ route('passwordExpiration') }}">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="form-group{{ $errors->has('current-password') ? ' has-error' : '' }}">
|
||||
<label for="new-password" class="col-md-4 control-label">{{ __('users.current_password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="current-password" type="password" class="form-control" name="current-password" required>
|
||||
|
||||
@if ($errors->has('current-password'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('current-password') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group{{ $errors->has('new-password') ? ' has-error' : '' }}">
|
||||
<label for="new-password" class="col-md-4 control-label">{{ __('users.new_password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="new-password" type="password" class="form-control" name="new-password" required>
|
||||
|
||||
@if ($errors->has('new-password'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('new-password') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="new-password-confirm" class="col-md-4 control-label">{{ __('users.confirm_new_password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="new-password-confirm" type="password" class="form-control" name="new-password_confirmation" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-6 col-md-offset-4">
|
||||
<button type="submit" class="btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light">
|
||||
{{ __('users.change_password') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- jQuery -->
|
||||
<script src="{{ asset('elite/bower_components/jquery/dist/jquery.min.js') }}"></script>
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="{{ asset('elite/bootstrap/dist/js/tether.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bootstrap/dist/js/bootstrap.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-extension/js/bootstrap-extension.min.js') }}"></script>
|
||||
<!-- Menu Plugin JavaScript -->
|
||||
<script src="{{ asset('elite/bower_components/sidebar-nav/dist/sidebar-nav.min.js') }}"></script>
|
||||
|
||||
<!--slimscroll JavaScript -->
|
||||
<script src="{{ asset('elite/js/jquery.slimscroll.js') }}"></script>
|
||||
<!--Wave Effects -->
|
||||
<script src="{{ asset('elite/js/waves.js') }}"></script>
|
||||
<!-- Custom Theme JavaScript -->
|
||||
<script src="{{ asset('elite/js/custom.min.js') }}"></script>
|
||||
<!--Style Switcher -->
|
||||
<script src="{{ asset('elite/bower_components/styleswitcher/jQuery.style.switcher.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ app()->getLocale() }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="icon" type="assetimage/png" sizes="16x16" href="{{ asset('uploads/streamline/color/streamline_icon-02.png') }}">
|
||||
<title>{{ config('app.name') }}</title>
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="{{ asset('elite/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-extension/css/bootstrap-extension.css') }}" rel="stylesheet">
|
||||
<!-- animation CSS -->
|
||||
<link href="{{ asset('elite/css/animate.css') }}" rel="stylesheet">
|
||||
<!-- Custom CSS -->
|
||||
<link href="{{ asset('elite/css/style.css') }}" rel="stylesheet">
|
||||
<!-- color CSS -->
|
||||
<link href="{{ asset('elite/css/colors/megna.css') }}" id="theme" rel="stylesheet">
|
||||
|
||||
<!-- Streamline - custom -->
|
||||
<link href="{{ asset('css/streamline-custom.css') }}" id="theme" rel="stylesheet">
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<!-- Preloader -->
|
||||
<div class="preloader">
|
||||
<div class="cssload-speeding-wheel"></div>
|
||||
</div>
|
||||
<section id="wrapper" class="login-register">
|
||||
<div class="login-box login-sidebar">
|
||||
<div class="white-box">
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
<!--<div class="white-box">-->
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
<form class="form-horizontal form-material" id="loginform" method="POST" action="{{ route('auth.reset') }}">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<a href="javascript:void(0)" class="text-center db">
|
||||
<img src="{{ asset('uploads/logo/kags.png') }}" alt="Home" /><br/>
|
||||
</a>
|
||||
|
||||
{{ csrf_field() }}
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-12">
|
||||
<h3>{{ __('users.reset_password') }}</h3>
|
||||
<p class="text-muted">{{ __('users.please_enter_pwd') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-12">
|
||||
<input type="hidden" value="<?php echo $id ?>" name="id">
|
||||
<input class="form-control compulsory" value="<?php echo $username ?>" readonly name="full_name" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-12">
|
||||
<input class="form-control compulsory" name="password" type="password" required minlength="6">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-12">
|
||||
<input class="form-control compulsory" name="password_confirm" type="password" required minlength="6">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group text-center m-t-20">
|
||||
<div class="col-xs-12">
|
||||
<button class="btn btn-success btn-lg btn-block text-uppercase waves-effect waves-light" type="submit">{{ __('users.reset') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- jQuery -->
|
||||
<script src="{{ asset('elite/bower_components/jquery/dist/jquery.min.js') }}"></script>
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="{{ asset('elite/bootstrap/dist/js/tether.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bootstrap/dist/js/bootstrap.min.js') }}"></script>
|
||||
<script src="{{ asset('elite/bower_components/bootstrap-extension/js/bootstrap-extension.min.js') }}"></script>
|
||||
<!-- Menu Plugin JavaScript -->
|
||||
<script src="{{ asset('elite/bower_components/sidebar-nav/dist/sidebar-nav.min.js') }}"></script>
|
||||
|
||||
<!--slimscroll JavaScript -->
|
||||
<script src="{{ asset('elite/js/jquery.slimscroll.js') }}"></script>
|
||||
<!--Wave Effects -->
|
||||
<script src="{{ asset('elite/js/waves.js') }}"></script>
|
||||
<!-- Custom Theme JavaScript -->
|
||||
<script src="{{ asset('elite/js/custom.min.js') }}"></script>
|
||||
<!--Style Switcher -->
|
||||
<script src="{{ asset('elite/bower_components/styleswitcher/jQuery.style.switcher.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
+188
@@ -0,0 +1,188 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@push('styles')
|
||||
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<style type="text/css">
|
||||
.object-fit_fill { object-fit: fill }
|
||||
.object-fit_contain { object-fit: contain }
|
||||
.object-fit_cover { object-fit: cover }
|
||||
.object-fit_none { object-fit: none }
|
||||
.object-fit_scale-down { object-fit: scale-down }
|
||||
|
||||
/* .html {
|
||||
color: #eee;
|
||||
padding: 30px;
|
||||
font-family: 'Source Code Pro', Monaco;
|
||||
background-color: #333;
|
||||
}*/
|
||||
|
||||
/* p { font-weight: 200; font-size: 13px; margin-bottom: 10px; margin-top: 0;}*/
|
||||
|
||||
.img-custom {
|
||||
height: 240px;
|
||||
background-color: #444;}
|
||||
|
||||
.img-custom[class] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.original-image {
|
||||
/*margin-bottom: 50px;*/
|
||||
}
|
||||
|
||||
.image {
|
||||
/*float: left;*/
|
||||
width: 100%; /* Was 40% */
|
||||
margin: 0 30px 20px 0;
|
||||
|
||||
&:nth-child(2n) {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
&:nth-child(2n+1){
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="row bg-title">
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
|
||||
<h4 class="page-title">{{ __('users.user_details') }}</h4>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
|
||||
<li><a href="{{ route('users.index') }}">{{ __('users.users') }}</a></li>
|
||||
<li class="active">{{ __('users.user_details') }}</li>
|
||||
</ol>
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
|
||||
<!-- .row -->
|
||||
<div class="row" style="margin-top: -20px;">
|
||||
<div class="col-sm-12">
|
||||
<!--Flash messages at the top -->
|
||||
<div>@include('flash::message')</div>
|
||||
|
||||
<div class="white-box">
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-xs-12">
|
||||
<div class="white-box">
|
||||
<div class="user-bg image"> <img class="object-fit_scale-down img-custom" alt="user" src="{{ asset('uploads/users/'.$user->photo) }}"> </div>
|
||||
<div class="user-btm-box" style="margin-top: -45px;">
|
||||
<!-- .row -->
|
||||
<div class="row text-center m-t-10">
|
||||
<div class="col-md-6 b-r"><strong>{{ __('users.names') }}</strong>
|
||||
<p>{{ $user->first_name }} {{ $user->last_name }}</p>
|
||||
</div>
|
||||
<div class="col-md-6"><strong>{{ __('users.position') }}</strong>
|
||||
<p>{{ array_key_exists($user->position_id, $positions) ? $positions[$user->position_id] : "" }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
<hr>
|
||||
<!-- .row -->
|
||||
<div class="row text-center m-t-10">
|
||||
<div class="col-md-6 b-r"><strong>{{ __('users.email_address') }}</strong>
|
||||
<p>{{ $user->email == NULL ? 'NA' : $user->email }}</p>
|
||||
</div>
|
||||
<div class="col-md-6"><strong>{{ __('users.phone_number') }}</strong>
|
||||
<p>{{ $user->phone }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
<hr>
|
||||
<!-- .row -->
|
||||
<div class="row text-center m-t-10">
|
||||
<div class="col-md-12"><strong>{{ __('users.roles_on_streamline') }}</strong>
|
||||
<p> @if(!empty($user->getRoleNames()))
|
||||
@foreach($user->getRoleNames() as $v)
|
||||
<span class="label label-success label-rounded badge">{{ $v }}</span>
|
||||
@endforeach
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8 col-xs-12">
|
||||
<div class="white-box">
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.username') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->username }}</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.blood_group') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ array_key_exists($user->blood_group_id, $blood_groups) ? $blood_groups[$user->blood_group_id] : "" }}</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.willing_to_donate') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->willing_to_donate == 1 ? __('users.yes') : __('users.no') }}</p>
|
||||
</div>
|
||||
<div class="col-md-3 col-xs-6"> <strong>{{ __('users.last_donation') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->last_donation_date == NULL ? 'NA' : $user->last_donation_date }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.council_registration') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->council_id == 0 ? 'NA' : $councils[$user->council_id] }}</p>
|
||||
</div>
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.registration_number') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->registration_number == NULL ? 'NA' : $user->registration_number }}</p>
|
||||
</div>
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.expiry_date') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->expiry_date == NULL ? 'NA' : $user->expiry_date }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.security_question') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">{{ $user->security_question_id == NULL ? 'NA' : $security_questions[$user->security_question_id] }}</p>
|
||||
</div>
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.security_answer') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">******</p>
|
||||
</div>
|
||||
<div class="col-md-3 col-xs-6 b-r"> <strong>{{ __('users.secret_pin') }}</strong>
|
||||
<br>
|
||||
<p class="text-muted">******</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<p class="text-muted text-right">{{ __('users.registered_on') }} <code>{{ $user->created_at }}</code></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
Reference in New Issue
Block a user