Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
simpkm
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Farendi Giotivano R.P
simpkm
Commits
eba931fe
Commit
eba931fe
authored
2 years ago
by
novanbagus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update user external
parent
ee952692
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
925 additions
and
8 deletions
+925
-8
app/Helpers/InseoHelper.php
+11
-0
app/Http/Controllers/Operator/CheckController.php
+119
-0
app/Http/Controllers/Operator/ReviewerController.php
+30
-4
app/Http/Controllers/Operator/UserController.php
+1
-1
app/Http/Controllers/Operator/UserExternalController.php
+193
-0
app/Models/User.php
+1
-1
public/theme/js/pages/jquery.validate.min.js
+0
-0
resources/views/backend/operator/reviewer/index.blade.php
+20
-0
resources/views/backend/operator/user_external/create.blade.php
+191
-0
resources/views/backend/operator/user_external/edit.blade.php
+194
-0
resources/views/backend/operator/user_external/index.blade.php
+152
-0
resources/views/layouts/menu.blade.php
+3
-0
routes/web.php
+10
-2
No files found.
app/Helpers/InseoHelper.php
View file @
eba931fe
...
...
@@ -78,4 +78,15 @@ class InseoHelper
return
$fak
;
}
public
static
function
random_password
()
{
$alphabet
=
'1234567890'
;
$pass
=
array
();
//remember to declare $pass as an array
$alphaLength
=
strlen
(
$alphabet
)
-
1
;
//put the length -1 in cache
for
(
$i
=
0
;
$i
<
8
;
$i
++
)
{
$n
=
rand
(
0
,
$alphaLength
);
$pass
[]
=
$alphabet
[
$n
];
}
return
implode
(
$pass
);
//turn the array into a string
}
}
This diff is collapsed.
Click to expand it.
app/Http/Controllers/Operator/CheckController.php
0 → 100644
View file @
eba931fe
<?php
namespace
App\Http\Controllers\Operator
;
use
App\Http\Controllers\Controller
;
use
Illuminate\Http\Request
;
use
App\Models\User
;
use
App\Models\Auth\Biodata
;
use
DB
;
class
CheckController
extends
Controller
{
public
function
email
(
Request
$request
)
{
$email
=
strtolower
(
$request
->
input
(
'value'
));
$temp
=
strtolower
(
$request
->
input
(
'temp'
));
if
(
$email
==
$temp
)
{
echo
'0'
;
exit
;
}
$cek
=
User
::
select
(
'id'
)
->
Where
(
DB
::
raw
(
'lower(email)'
),
$email
)
->
count
();
if
(
$cek
>
0
)
echo
'1'
;
else
echo
'0'
;
}
public
function
nidn
(
Request
$request
)
{
$nidn
=
$request
->
input
(
'value'
);
$temp
=
$request
->
input
(
'temp'
);
if
(
$nidn
==
$temp
)
{
echo
'0'
;
exit
;
}
$cek
=
Biodata
::
join
(
'users'
,
'users.id'
,
'='
,
'biodata.id'
)
->
select
(
'id'
)
->
Where
(
'noidentitas'
,
$nidn
)
->
count
();
if
(
$cek
>
0
)
echo
'2'
;
else
echo
'0'
;
}
// public function kecamatan($kota)
// {
// $modelKecamatan = new Kecamatan;
// $kecamatan = new KecamatanRepository($modelKecamatan);
// return $kecamatan->kecamatan($kota);
// }
// public function smu($kecamatan)
// {
// $modelSmu = new KodeSmu;
// $smu = new SmuRepository($modelSmu);
// return $smu->smu($kecamatan);
// }
// public function kelompokJalur($jalur){
// $modelProdiJalur = new Kelompok;
// $modelPendaftar = new Pendaftar;
// $prodiJalur = new KelompokRepository($modelProdiJalur, $modelPendaftar);
// return $prodiJalur->kelompok('ajax', $jalur);
// //dd($prodiJalur->prodiJalurx($kelompok, $jalur));
// }
// public function prodiJalur($kelompok, $jalur){
// $modelProdiJalur = new ProdiJalur;
// $prodiJalur = new ProdiJalurRepository($modelProdiJalur);
// return $prodiJalur->prodiJalurx($kelompok, $jalur);
// //dd($prodiJalur->prodiJalurx($kelompok, $jalur));
// }
// public function spi($prodi)
// {
// $modelSpi = new Spi;
// $spi = new SpiRepository($modelSpi);
// return $spi->spi($prodi);
// }
public
function
prodi
(
Request
$request
)
{
$value
=
$request
->
get
(
'value'
);
if
(
$value
!=
''
)
{
$data
=
DB
::
table
(
'prodi'
)
->
where
(
'fakultas_id'
,
$value
)
->
select
(
'id'
,
'nama'
)
->
get
();
$output
=
'<option value="">- Pilih Data -</option>'
;
foreach
(
$data
as
$row
)
{
$output
.=
'<option value="'
.
$row
->
id
.
'">'
.
$row
->
nama
.
'</option>'
;
}
}
else
{
$output
=
''
;
}
echo
$output
;
}
// public function prodiunesa($fakultas)
// {
// $modelProdiunesa = new ProdiUnesas;
// $prodiunesa = new ProdiUnesaRepository($modelProdiunesa);
// return $prodiunesa->prodiunesa($fakultas);
// }
}
This diff is collapsed.
Click to expand it.
app/Http/Controllers/Operator/ReviewerController.php
View file @
eba931fe
...
...
@@ -2,20 +2,21 @@
namespace
App\Http\Controllers\Operator
;
use
App\Http\Controllers\Controller
;
use
DB
;
use
URL
;
use
Auth
;
use
Uuid
;
use
Alert
;
use
Crypt
;
use
App\Models\User
;
use
GuzzleHttp\Client
;
use
App\Models\Reviewer
;
use
App\Traits\LoginTrait
;
use
Illuminate\Http\Request
;
use
App\Http\Controllers\Controller
;
use
App\Http\Controllers\Authentication\LoginController
;
use
App\Traits\LoginTrait
;
class
ReviewerController
extends
Controller
{
...
...
@@ -196,12 +197,16 @@ class ReviewerController extends Controller
public
function
getDosen
(
Request
$request
)
{
$tipe
=
$request
->
get
(
'tipe'
);
$i
=
0
;
if
(
$tipe
==
'1'
||
$tipe
==
''
||
$tipe
==
null
)
{
$client
=
new
Client
();
$response
=
$client
->
request
(
'GET'
,
'https://i-sdm.unesa.ac.id/api/data-dosen'
);
$data
=
json_decode
(
$response
->
getBody
(),
true
);
$result
=
[];
$i
=
0
;
foreach
(
$data
[
'data'
]
as
$key
=>
$value
)
{
$jenjang
=
substr
(
$value
[
'namasatker'
],
-
2
);
...
...
@@ -216,10 +221,31 @@ class ReviewerController extends Controller
$result
[
$i
][
'nidn'
]
=
$value
[
'nidn'
];
$result
[
$i
][
'fakultas'
]
=
$value
[
'namaparentsatker'
];
$result
[
$i
][
'prodi'
]
=
$xyz
;
$result
[
$i
][
'tipe'
]
=
'Internal'
;
$result
[
$i
][
'id_sdm'
]
=
$value
[
'nidn'
];
$i
++
;
}
}
if
(
$tipe
==
'2'
||
$tipe
==
''
||
$tipe
==
null
)
{
$users
=
User
::
with
([
'rBiodata'
,
'rolesCustom'
])
->
whereHas
(
'rolesCustom'
,
function
(
$q
){
$q
->
whereIn
(
'name'
,
[
'reviewer'
]);
})
->
where
(
'status'
,
'2'
)
->
get
();
$j
=
$i
?:
0
;
foreach
(
$users
as
$key
=>
$value
)
{
$result
[
$j
][
'nm_sdm'
]
=
$value
->
name
;
$result
[
$j
][
'nidn'
]
=
$value
->
rBiodata
->
noidentitas
;
$result
[
$j
][
'fakultas'
]
=
$value
->
rBiodata
->
fakultas
;
$result
[
$j
][
'prodi'
]
=
$value
->
rBiodata
->
prodi
;
$result
[
$j
][
'tipe'
]
=
'External'
;
$result
[
$j
][
'id_sdm'
]
=
$value
->
rBiodata
->
noidentitas
;
$j
++
;
}
}
$hasil
[
'kode'
]
=
"200"
;
$hasil
[
'pesan'
]
=
"sukses"
;
...
...
This diff is collapsed.
Click to expand it.
app/Http/Controllers/Operator/UserController.php
View file @
eba931fe
...
...
@@ -21,7 +21,7 @@ class UserController extends Controller
$data
[
'title'
]
=
'Daftar User'
;
$data
[
'users'
]
=
User
::
with
([
'rBiodata'
,
'rolesCustom'
])
->
whereHas
(
'rolesCustom'
,
function
(
$q
){
$q
->
whereIn
(
'name'
,
[
'dosen'
,
'reviewer'
]);
})
->
get
();
})
->
where
(
'status'
,
'1'
)
->
get
();
$data
[
'roles'
]
=
Role
::
whereIn
(
'name'
,
[
'reviewer'
,
'operator'
])
->
orderBy
(
'name'
)
->
get
();
...
...
This diff is collapsed.
Click to expand it.
app/Http/Controllers/Operator/UserExternalController.php
0 → 100644
View file @
eba931fe
<?php
namespace
App\Http\Controllers\Operator
;
use
Uuid
;
use
App\Models\Role
;
use
App\Models\User
;
use
App\Helpers\InseoHelper
;
use
App\Models\Auth\Biodata
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
use
App\Http\Controllers\Controller
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Crypt
;
use
RealRashid\SweetAlert\Facades\Alert
;
use
Spatie\Permission\Models\Role
as
ModelsRole
;
class
UserExternalController
extends
Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public
function
index
()
{
$data
[
'title'
]
=
'Daftar User External'
;
$data
[
'users'
]
=
User
::
with
([
'rBiodata'
,
'rolesCustom'
])
->
whereHas
(
'rolesCustom'
,
function
(
$q
){
$q
->
whereIn
(
'name'
,
[
'reviewer'
]);
})
->
where
(
'status'
,
'2'
)
->
get
();
return
view
(
'backend.operator.user_external.index'
,
$data
);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public
function
create
()
{
return
view
(
'backend.operator.user_external.create'
)
->
withTitle
(
'Tambah User External'
);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public
function
store
(
Request
$request
)
{
$uuid
=
Uuid
::
generate
();
$password
=
InseoHelper
::
random_password
();
$data
[
'id'
]
=
$uuid
;
$data
[
'name'
]
=
$request
->
input
(
'nama'
);
$data
[
'email'
]
=
$request
->
input
(
'email'
);
$data
[
'password_decrypt'
]
=
$password
;
$data
[
'password'
]
=
Crypt
::
encrypt
(
$password
);
$data
[
'status'
]
=
'2'
;
if
(
User
::
create
(
$data
))
{
$detil
[
'id'
]
=
$uuid
;
$detil
[
'noidentitas'
]
=
$request
->
input
(
'nidn'
);
$detil
[
'name'
]
=
$request
->
input
(
'nama'
);
$detil
[
'fakultas'
]
=
$request
->
input
(
'fakultas'
);
$detil
[
'prodi'
]
=
$request
->
input
(
'prodi'
);
$detil
[
'email'
]
=
$request
->
input
(
'email'
);
$detil
[
'userid_created'
]
=
Auth
::
user
()
->
id
;
Biodata
::
create
(
$detil
);
$values
=
array
(
'role_id'
=>
'2619bc99-0027-4997-9510-d4736bd26862'
,
'model_type'
=>
'App\Models\User'
,
'model_id'
=>
$uuid
);
DB
::
table
(
'model_has_roles'
)
->
insert
(
$values
);
Alert
::
success
(
'Data berhasil disimpan'
)
->
persistent
(
'Ok'
);
$successmessage
=
"Proses Tambah User External Berhasil."
;
}
else
{
Alert
::
success
(
'Data gagal disimpan'
)
->
persistent
(
'Ok'
);
$successmessage
=
"Proses Tambah User External Gagal."
;
}
return
redirect
()
->
route
(
'operator.user-external.index'
)
->
with
(
'successMessage'
,
$successmessage
);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function
show
(
$id
)
{
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function
edit
(
$id
)
{
$data
[
'title'
]
=
'Ubah User External'
;
$data
[
'user'
]
=
User
::
with
([
'rBiodata'
,
'rolesCustom'
])
->
whereHas
(
'rolesCustom'
,
function
(
$q
){
$q
->
whereIn
(
'name'
,
[
'reviewer'
]);
})
->
find
(
decrypt
(
$id
));
return
view
(
'backend.operator.user_external.edit'
,
$data
);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function
update
(
Request
$request
,
$id
)
{
$user
=
User
::
find
(
decrypt
(
$id
));
$user
->
name
=
$request
->
input
(
'nama'
);
$user
->
save
();
if
(
$user
->
save
())
{
$biodata
=
Biodata
::
find
(
decrypt
(
$id
));
$biodata
->
noidentitas
=
$request
->
input
(
'nidn'
);
$biodata
->
name
=
$request
->
input
(
'nama'
);
$biodata
->
fakultas
=
$request
->
input
(
'fakultas'
);
$biodata
->
prodi
=
$request
->
input
(
'prodi'
);
$biodata
->
email
=
$request
->
input
(
'email'
);
$biodata
->
save
();
Alert
::
success
(
'Data berhasil disimpan'
)
->
persistent
(
'Ok'
);
$successmessage
=
"Proses Tambah User External Berhasil."
;
}
else
{
Alert
::
success
(
'Data gagal disimpan'
)
->
persistent
(
'Ok'
);
$successmessage
=
"Proses Tambah User External Gagal."
;
}
return
redirect
()
->
route
(
'operator.user-external.index'
)
->
with
(
'successMessage'
,
$successmessage
);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function
destroy
(
$id
)
{
try
{
$biodata
=
Biodata
::
find
(
decrypt
(
$id
));
$cari
=
DB
::
select
(
"SELECT cek_data_reviewer('"
.
$biodata
->
noidentitas
.
"')"
)[
0
]
->
cek_data_reviewer
;
if
(
$cari
==
1
)
{
$status
=
false
;
$info
=
"Maaf data user tidak dapat dihapus karena telah dipilih untuk menjadi reviewer."
;
}
else
{
$biodata
=
Biodata
::
find
(
decrypt
(
$id
));
$biodata
->
delete
();
$user
=
User
::
find
(
decrypt
(
$id
));
$user
->
delete
();
DB
::
table
(
'model_has_roles'
)
->
where
(
'model_id'
,
decrypt
(
$id
))
->
delete
();
$status
=
true
;
$info
=
"Data berhasil dihapus."
;
}
return
response
()
->
json
([
'status'
=>
$status
,
'info'
=>
$info
,
]);
}
catch
(
\Exception
$id
)
{
return
response
()
->
json
([
'status'
=>
false
,
'info'
=>
"Data gagal dihapus."
,
]);
}
}
}
This diff is collapsed.
Click to expand it.
app/Models/User.php
View file @
eba931fe
...
...
@@ -31,7 +31,7 @@ class User extends Authenticatable
* @var string[]
*/
protected
$fillable
=
[
'id'
,
'name'
,
'email'
,
'password'
,
'id'
,
'name'
,
'email'
,
'password'
,
'status'
,
'password_decrypt'
];
/**
...
...
This diff is collapsed.
Click to expand it.
public/theme/js/pages/jquery.validate.min.js
0 → 100644
View file @
eba931fe
This diff is collapsed.
Click to expand it.
resources/views/backend/operator/reviewer/index.blade.php
View file @
eba931fe
...
...
@@ -71,6 +71,16 @@
aria-label="
Close
"></button>
</div>
<div class="
modal
-
body
" style="
min
-
height
:
500
px
!
important
">
<div class="
row
col
-
mb
-
3
">
<label class="
col
-
sm
-
1
col
-
form
-
label
">Tipe : </label>
<div class="
col
-
sm
-
2
">
<select class="
form
-
select
" id="
reqTipe
" name="
reqTipe
">
<option value=''>Semua</option>
<option value="
1
">Internal</option>
<option value="
2
">External</option>
</select>
</div>
</div><br>
<table id="
example1
" class="
table
table
-
bordered
dt
-
responsive
nowrap
" style="
border
-
collapse
:
collapse
;
border
-
spacing
:
0
;
width
:
100
%
;
">
<thead>
<tr>
...
...
@@ -78,6 +88,7 @@
<th>NIDN</th>
<th>Fakultas</th>
<th>Prodi</th>
<th>Tipe</th>
<th>Aksi</th>
</tr>
</thead>
...
...
@@ -132,6 +143,10 @@
processing: true,
ajax: {
url: "
{{
route
(
'operator.getDosen'
)}}
",
"
data
" : function ( data )
{
data.tipe = $("
#reqTipe").val();
},
dataSrc
:
'data'
},
columns
:
[
...
...
@@ -139,6 +154,7 @@
{
data
:
'nidn'
},
{
data
:
'fakultas'
},
{
data
:
'prodi'
},
{
data
:
'tipe'
},
{
data
:
'id_sdm'
},
],
columnDefs
:
[
...
...
@@ -154,6 +170,10 @@
]
});
$
(
'#reqTipe'
)
.
change
(
function
(){
oTable1
.
ajax
.
reload
();
});
function
createManageBtn
()
{
return
'<button id="manageBtn" type="button" class="btn btn-success btn-sm">Tambah</button>'
;
}
...
...
This diff is collapsed.
Click to expand it.
resources/views/backend/operator/user_external/create.blade.php
0 → 100644
View file @
eba931fe
@
extends
(
'layouts.master'
)
@
section
(
'title'
)
Dashboard
@
endsection
@
section
(
'header'
)
<
div
class
="
page
-
title
">
<h3>Dashboard</h3>
</div>
@endsection
@include('sweet::alert')
@section('contents')
<!-- start page title -->
<div class="
page
-
title
-
box
">
<div class="
row
align
-
items
-
center
">
<div class="
col
-
md
-
8
">
<h6 class="
page
-
title
">{!!
$title
!!}</h6>
<ol class="
breadcrumb
m
-
0
">
<li class="
breadcrumb
-
item
"><a href="
{{
URL
::
to
(
'user-external'
)
}}
">Daftar User External</a></li>
<li class="
breadcrumb
-
item
">{!!
$title
!!}</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="
row
">
<div class="
col
-
12
">
<div class="
card
">
<div class="
card
-
body
">
{!! Form::open(array('url' => route('operator.user-external.store'), 'method' => 'POST', 'id' => 'ff', 'class' => 'form-horizontal')) !!}
{!! csrf_field() !!}
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Email</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('email', old('email'), array('class' => 'form-control check', 'data-info' => 'email', 'id' => 'email', 'placeholder' => 'Masukkan Email', 'required')) }}
@if (
$errors->has
('email'))
<span class="
help
-
block
">
{
{$errors->first('email')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
text
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">NIDN</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('nidn', old('nidn'), array('class' => 'form-control check', 'data-info' => 'nidn', 'id' => 'nidn', 'placeholder' => 'Masukkan NIDN', 'required')) }}
@if (
$errors->has
('nidn'))
<span class="
help
-
block
">
{
{$errors->first('nidn')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Nama</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('nama', old('nama'), array('class' => 'form-control', 'placeholder' => 'Masukkan Nama', 'required')) }}
@if (
$errors->has
('nama'))
<span class="
help
-
block
">
{
{$errors->first('nama')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Fakultas</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('fakultas', old('fakultas'), array('class' => 'form-control', 'placeholder' => 'Masukkan Fakultas', 'required')) }}
@if (
$errors->has
('fakultas'))
<span class="
help
-
block
">
{
{$errors->first('fakultas')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Prodi</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('prodi', old('prodi'), array('class' => 'form-control', 'placeholder' => 'Masukkan Prodi', 'required')) }}
@if (
$errors->has
('prodi'))
<span class="
help
-
block
">
{
{$errors->first('prodi')}
}
</span>
@endif
</div>
</div>
<div class="
mb
-
0
">
<div>
<button type="
submit
" class="
btn
btn
-
primary
waves
-
effect
waves
-
light
me
-
1
">
Submit
</button>
<button type="
reset
" class="
btn
btn
-
secondary
waves
-
effect
">
Cancel
</button>
</div>
</div>
</form>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script src="
{{
asset
(
'theme/js/pages/jquery.validate.min.js'
)
}}
"></script>
<script>
$('.check').on('focusout', function() {
var info = $(this).data('info');
if(info == 'email')
var url = "
{{
url
(
'/operator/checkemail'
)}}
";
else if(info == 'nidn')
var url = "
{{
url
(
'/operator/checknidn'
)}}
";
var value = $(this).val();
var _token = $('input[name="
_token
"]').val();
$.ajax({
url: url,
method:"
POST
",
data:{value:value, _token:_token},
success: function(data) {
if(data == '1') {
$('#email').focus();
$('#email').val('');
Swal.fire({
icon: 'error',
text: "
Email
telah
terdaftar
!
",
});
// return false;
}
else if(data == '2') {
$('#nidn').focus();
$('#nidn').val('');
Swal.fire({
icon: 'error',
text: "
NIDN
telah
terdaftar
!
",
});
// return false;
}
},
error: function(data){
//error
}
});
});
$(document).ready(function() {
$(function() {
// [ Initialize validation ]
$('#ff').validate({
ignore: '.ignore, .select2-input',
focusInvalid: false,
rules: {
'email': {
required: true,
email: true
},
'password': {
required: true,
minlength: 6,
maxlength: 20
},
},
// Errors //
errorPlacement: function errorPlacement(error, element) {
var
$parent
= $(element).parents('.input');
// Do not duplicate errors
if (
$parent
.find('.jquery-validation-error').length) {
return;
}
$parent
.append(
error.addClass('jquery-validation-error small form-text invalid-feedback')
);
},
highlight: function(element) {
var
$el
= $(element);
var
$parent
=
$el
.parents('.form-group');
$el
.addClass('is-invalid');
// Select2 and Tagsinput
if (
$el
.hasClass('select2-hidden-accessible') ||
$el
.attr('data-role') === 'tagsinput') {
$el
.parent().addClass('is-invalid');
}
},
unhighlight: function(element) {
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
}
});
});
});
</script>
@endsection
This diff is collapsed.
Click to expand it.
resources/views/backend/operator/user_external/edit.blade.php
0 → 100644
View file @
eba931fe
@
extends
(
'layouts.master'
)
@
section
(
'title'
)
Dashboard
@
endsection
@
section
(
'header'
)
<
div
class
="
page
-
title
">
<h3>Dashboard</h3>
</div>
@endsection
@php
// dd(
$user->rBiodata
);
@endphp
@section('contents')
<!-- start page title -->
<div class="
page
-
title
-
box
">
<div class="
row
align
-
items
-
center
">
<div class="
col
-
md
-
8
">
<h6 class="
page
-
title
">{!!
$title
!!}</h6>
<ol class="
breadcrumb
m
-
0
">
<li class="
breadcrumb
-
item
"><a href="
{{
URL
::
to
(
'user-external'
)
}}
">Daftar User External</a></li>
<li class="
breadcrumb
-
item
">{!!
$title
!!}</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="
row
">
<div class="
col
-
12
">
<div class="
card
">
<div class="
card
-
body
">
{!! Form::model(
$user
, ['route' => ['operator.user-external.update', encrypt(
$user->id
)], 'method'=>'patch', 'class'=>'form-horizontal']) !!}
{!! csrf_field() !!}
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Email</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('email', null, array('class' => 'form-control check', 'data-info' => 'email', 'id' => 'email', 'placeholder' => 'Masukkan Email', 'readonly')) }}
@if (
$errors->has
('email'))
<span class="
help
-
block
">
{
{$errors->first('email')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
text
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">NIDN</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('nidn',
$user->rBiodata
->noidentitas, array('class' => 'form-control check', 'data-info' => 'nidn', 'id' => 'nidn', 'placeholder' => 'Masukkan NIDN', 'required')) }}
@if (
$errors->has
('nidn'))
<span class="
help
-
block
">
{
{$errors->first('nidn')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Nama</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('nama',
$user->name
, array('class' => 'form-control', 'placeholder' => 'Masukkan Nama', 'required')) }}
@if (
$errors->has
('nama'))
<span class="
help
-
block
">
{
{$errors->first('nama')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Fakultas</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('fakultas',
$user->rBiodata
->fakultas, array('class' => 'form-control', 'placeholder' => 'Masukkan Fakultas', 'required')) }}
@if (
$errors->has
('fakultas'))
<span class="
help
-
block
">
{
{$errors->first('fakultas')}
}
</span>
@endif
</div>
</div>
<div class="
row
mb
-
3
">
<label for="
example
-
search
-
input
" class="
col
-
sm
-
2
col
-
form
-
label
">Prodi</label>
<div class="
col
-
sm
-
10
">
{{ Form::text('prodi',
$user->rBiodata
->prodi, array('class' => 'form-control', 'placeholder' => 'Masukkan Prodi', 'required')) }}
@if (
$errors->has
('prodi'))
<span class="
help
-
block
">
{
{$errors->first('prodi')}
}
</span>
@endif
</div>
</div>
<div class="
mb
-
0
">
<div>
<button type="
submit
" class="
btn
btn
-
primary
waves
-
effect
waves
-
light
me
-
1
">
Submit
</button>
<button type="
reset
" class="
btn
btn
-
secondary
waves
-
effect
">
Cancel
</button>
</div>
</div>
</form>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script src="
{{
asset
(
'theme/js/pages/jquery.validate.min.js'
)
}}
"></script>
<script>
$('.check').on('focusout', function() {
var info = $(this).data('info');
if(info == 'email')
var url = "
{{
url
(
'/operator/checkemail'
)}}
";
else if(info == 'nidn')
var url = "
{{
url
(
'/operator/checknidn'
)}}
";
var value = $(this).val();
var _token = $('input[name="
_token
"]').val();
$.ajax({
url: url,
method:"
POST
",
data:{value:value, _token:_token},
success: function(data) {
if(data == '1') {
$('#email').focus();
$('#email').val('');
Swal.fire({
icon: 'error',
text: "
Email
telah
terdaftar
!
",
});
// return false;
}
else if(data == '2') {
$('#nidn').focus();
$('#nidn').val('');
Swal.fire({
icon: 'error',
text: "
NIDN
telah
terdaftar
!
",
});
// return false;
}
},
error: function(data){
//error
}
});
});
$(document).ready(function() {
$(function() {
// [ Initialize validation ]
$('#ff').validate({
ignore: '.ignore, .select2-input',
focusInvalid: false,
rules: {
'email': {
required: true,
email: true
},
'password': {
required: true,
minlength: 6,
maxlength: 20
},
},
// Errors //
errorPlacement: function errorPlacement(error, element) {
var
$parent
= $(element).parents('.input');
// Do not duplicate errors
if (
$parent
.find('.jquery-validation-error').length) {
return;
}
$parent
.append(
error.addClass('jquery-validation-error small form-text invalid-feedback')
);
},
highlight: function(element) {
var
$el
= $(element);
var
$parent
=
$el
.parents('.form-group');
$el
.addClass('is-invalid');
// Select2 and Tagsinput
if (
$el
.hasClass('select2-hidden-accessible') ||
$el
.attr('data-role') === 'tagsinput') {
$el
.parent().addClass('is-invalid');
}
},
unhighlight: function(element) {
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
}
});
});
});
</script>
@endsection
This diff is collapsed.
Click to expand it.
resources/views/backend/operator/user_external/index.blade.php
0 → 100644
View file @
eba931fe
@
extends
(
'layouts.master'
)
@
section
(
'title'
)
Dashboard
@
endsection
@
section
(
'header'
)
<
div
class
="
page
-
title
">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="
page
-
title
-
box
">
<div class="
row
align
-
items
-
center
">
<div class="
col
-
md
-
8
">
<h6 class="
page
-
title
">{!!
$title
!!}</h6>
<ol class="
breadcrumb
m
-
0
">
<li class="
breadcrumb
-
item
">{!!
$title
!!}</li>
</ol>
</div>
<div class="
col
-
md
-
4
">
<div class="
float
-
end
d
-
none
d
-
md
-
block
">
<a href="
{{
URL
::
to
(
'operator/user-external/create'
)
}}
" type="
button
" class="
btn
btn
-
primary
waves
-
effect
waves
-
light
"> <i class="
fas
fa
-
plus
-
circle
"></i> Tambah Data</a>
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="
row
">
<div class="
col
-
12
">
<div class="
card
">
<div class="
card
-
body
">
<table id="
datatable
" class="
table
table
-
bordered
dt
-
responsive
" style="
border
-
collapse
:
collapse
;
border
-
spacing
:
0
;
width
:
100
%
;
">
<thead>
<tr>
<th>No.</th>
<th>NIDN</th>
<th>Nama</th>
<th>Akun</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach (
$users
as
$item
)
<tr>
<td>{{
$loop->iteration
}}</td>
<td>{{
$item->rBiodata
->noidentitas }}</td>
<td>{{
$item->name
}}</td>
<td>
Email : <b>{{
$item->email
}}</b><br>
Password : <b>{{
$item->password_decrypt
}}</b>
</td>
<td>
<a href="
{{
URL
::
to
(
'operator/user-external/'
.
Crypt
::
encrypt
(
$item
->
id
)
.
'/edit'
)
}}
" class="
btn
btn
-
icon
-
sm
btn
-
primary
"><i class="
fas
fa
-
edit
"></i></a>
<a href="
#!" class="btn btn-icon-sm btn-danger" onclick="confirmDelete('{{ Crypt::encrypt($item->id) }}')"><i class="fas fa-trash"></i></a>
</
td
>
</
tr
>
@
endforeach
</
tbody
>
</
table
>
</
div
>
</
div
>
</
div
>
<!--
end
col
-->
</
div
>
<!--
end
row
-->
@
endsection
@
section
(
'js'
)
<
script
src
=
"{{ asset('theme/js/pages/datatables.init.js') }}"
></
script
>
<
script
>
$
(
"body"
)
.
on
(
"click"
,
".delete"
,
function
(
e
)
{
e
.
preventDefault
();
var
id
=
$
(
this
)
.
data
(
'id'
);
Swal
.
fire
({
title
:
"Apakah Anda Yakin?"
,
text
:
"Anda akan menghapus data ini!"
,
icon
:
"warning"
,
showCancelButton
:
true
,
confirmButtonColor
:
"#DD6B55"
,
confirmButtonText
:
"Yes"
,
cancelButtonText
:
"No"
})
.
then
((
result
)
=>
{
if
(
result
.
value
)
{
Swal
.
close
();
$
(
"#"
+
id
)
.
submit
();
}
else
if
(
result
.
dismiss
===
Swal
.
DismissReason
.
cancel
)
{
Swal
.
fire
(
'Dibatalkan'
,
'Data batal dihapus'
,
'error'
);
}
});
});
function
confirmDelete
(
reqId
)
{
Swal
.
fire
({
title
:
"Apakah Anda Yakin?"
,
text
:
"Anda akan menghapus data ini!"
,
icon
:
"warning"
,
showCancelButton
:
!
0
,
confirmButtonText
:
"Ya, Hapus data!"
,
cancelButtonText
:
"Tidak, Kembali!"
,
confirmButtonClass
:
"btn btn-success mt-2"
,
cancelButtonClass
:
"btn btn-danger ms-2 mt-2"
,
buttonsStyling
:
!
1
,
allowOutsideClick
:
!
1
,
showLoaderOnConfirm
:
true
})
.
then
((
result
)
=>
{
if
(
result
.
value
){
$
.
ajax
({
url
:
'{{url("/operator/user-external/")}}/'
+
reqId
,
type
:
'DELETE'
,
data
:
{
"_token"
:
"{{ csrf_token() }}"
,
},
dataType
:
"JSON"
,
success
:
function
(
data
)
{
if
(
data
.
status
==
'1'
)
{
swal
.
fire
({
title
:
data
.
info
,
text
:
""
,
icon
:
"success"
})
.
then
(
okay
=>
{
if
(
okay
)
{
location
.
reload
();
}
});
}
else
swal
.
fire
(
data
.
info
,
""
,
"warning"
);
},
error
:
function
(
xhr
,
ajaxOptions
,
thrownError
)
{
swal
(
"Data gagal dihapus."
,
{
icon
:
"error"
,
});
}
});
}
else
{
swal
.
fire
(
'Batal!'
,
'Data batal dihapus.'
,
'error'
);
}
})
}
</
script
>
@
endsection
This diff is collapsed.
Click to expand it.
resources/views/layouts/menu.blade.php
View file @
eba931fe
...
...
@@ -15,6 +15,9 @@
<li>
<a
href=
"{{ URL::to('/operator/user') }}"
class=
"waves-effect"
><i
class=
"ti-user"
></i><span>
User
</span></a>
</li>
<li>
<a
href=
"{{ URL::to('/operator/user-external') }}"
class=
"waves-effect"
><i
class=
"ti-user"
></i><span>
User External
</span></a>
</li>
<li>
<a
href=
"javascript: void(0);"
class=
"has-arrow waves-effect"
>
...
...
This diff is collapsed.
Click to expand it.
routes/web.php
View file @
eba931fe
...
...
@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
use
App\Http\Controllers\DashboardController
;
use
App\Http\Controllers\Operator\UserController
;
use
App\Http\Controllers\Operator\CheckController
;
use
App\Http\Controllers\Operator\JenisController
;
use
App\Http\Controllers\Operator\SelectController
;
use
App\Http\Controllers\Mahasiswa\AnggotaController
;
...
...
@@ -13,18 +14,19 @@ use App\Http\Controllers\Operator\ProposalController;
use
App\Http\Controllers\Operator\ReviewerController
;
use
App\Http\Controllers\Authentication\LoginController
;
use
App\Http\Controllers\Reviewer\DaftarMonevController
;
use
App\Http\Controllers\Operator\UserExternalController
;
use
App\Http\Controllers\Operator\MonevProposalController
;
use
App\Http\Controllers\Operator\ReviewerMonevController
;
use
App\Http\Controllers\Reviewer\DaftarSeleksiController
;
use
App\Http\Controllers\Operator\DaftarProposalController
;
use
App\Http\Controllers\Operator\JadwalKegiatanController
;
use
App\Http\Controllers\Dosen\MonevController
as
DosenMonev
;
use
App\Http\Controllers\Operator\JenisPenilaianMonevController
;
use
App\Http\Controllers\Dosen\BiodataController
as
DosenBiodata
;
use
App\Http\Controllers\Dosen\SeleksiController
as
DosenSeleksi
;
use
App\Http\Controllers\Dosen\KelompokController
as
DosenKelompok
;
use
App\Http\Controllers\Dosen\ProposalController
as
DosenProposal
;
use
App\Http\Controllers\Mahasiswa\MonevController
as
MonevMahasiswa
;
use
App\Http\Controllers\Mahasiswa\LuaranController
as
LuaranMahasiswa
;
...
...
@@ -184,6 +186,12 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route
::
resource
(
'user'
,
UserController
::
class
);
Route
::
post
(
'/user/remove-role'
,
[
UserController
::
class
,
'removeRole'
])
->
name
(
'remove-role'
);
Route
::
post
(
'/user/add-role'
,
[
UserController
::
class
,
'addRole'
])
->
name
(
'add-role'
);
Route
::
resource
(
'user-external'
,
UserExternalController
::
class
);
// cek email apakah sudah ada apa belum
Route
::
post
(
'checkemail'
,
[
CheckController
::
class
,
'email'
])
->
name
(
'checkemail'
);
Route
::
post
(
'checknidn'
,
[
CheckController
::
class
,
'nidn'
])
->
name
(
'checknidn'
);
});
Route
::
name
(
'reviewer.'
)
->
prefix
(
'reviewer'
)
->
middleware
([
'role:reviewer|operator|dosen|tendik'
])
->
group
(
function
()
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment