Compare commits
45 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b86fdbfb99 | ||
|
2346a4a852 | ||
0cf61a402f | |||
f4f1dc2c25 | |||
|
bf4facb148 | ||
315a9afaaf | |||
2b26aa9da3 | |||
3c946de35e | |||
e403fb8062 | |||
4d0ae48d3f | |||
5ef51b86cc | |||
4106404907 | |||
f1d27b1de7 | |||
445e070738 | |||
169bf77a5c | |||
344e2a96dc | |||
95d6a1f216 | |||
a6ba325874 | |||
9281424176 | |||
03244e3486 | |||
cbec454402 | |||
05b26a4b95 | |||
4d2959b538 | |||
0ab8abda5f | |||
19001d8530 | |||
80a4a27df2 | |||
78253e7b21 | |||
5b65bae426 | |||
71068046de | |||
8c71f3cbe1 | |||
a90f775f2a | |||
26e32d4d54 | |||
e736b5b6cc | |||
e7403cb94f | |||
f27e69d51f | |||
26f2b816a3 | |||
67ef3c368e | |||
bd3233494e | |||
6033e1850a | |||
6f91525f6e | |||
9bfae06272 | |||
cb0793fde0 | |||
4e95c29411 | |||
38ba8fac54 | |||
eea0e3d304 |
@ -4,6 +4,11 @@ APP_KEY=
|
|||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost:8000
|
APP_URL=http://localhost:8000
|
||||||
|
|
||||||
|
METHOD_AUTH=usermanager
|
||||||
|
IP_USER_MANAGER=10.0.20.68
|
||||||
|
PORT_USER_MANAGER=82
|
||||||
|
APP_ID=WOF
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stack
|
||||||
LOG_DEPRECATIONS_CHANNEL=null
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -6,6 +6,7 @@
|
|||||||
/public/mix-manifest.json
|
/public/mix-manifest.json
|
||||||
/storage/*.key
|
/storage/*.key
|
||||||
/vendor
|
/vendor
|
||||||
|
/Modules/*
|
||||||
.env
|
.env
|
||||||
.env.backup
|
.env.backup
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
@ -16,3 +17,4 @@ npm-debug.log
|
|||||||
yarn-error.log
|
yarn-error.log
|
||||||
/.idea
|
/.idea
|
||||||
/.vscode
|
/.vscode
|
||||||
|
composer.lock
|
||||||
|
0
Modules/index.html
Normal file
0
Modules/index.html
Normal file
@ -1,89 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class DirectoratDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('action', 'pages.masters.directorat._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(Directorat $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('directorat-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Directorat_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,128 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\Document;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class DocumentDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addColumn('kode_directorat',function($model){
|
|
||||||
return $model->directorat->kode;
|
|
||||||
})
|
|
||||||
->addColumn('name_directorat',function($model){
|
|
||||||
return $model->directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('kode_sub_directorat',function($model){
|
|
||||||
return $model->sub_directorat->kode;
|
|
||||||
})
|
|
||||||
->addColumn('name_sub_directorat',function($model){
|
|
||||||
return $model->sub_directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('kode_pekerjaan',function($model){
|
|
||||||
return $model->job->kode;
|
|
||||||
})
|
|
||||||
->addColumn('name_pekerjaan',function($model){
|
|
||||||
return $model->job->name;
|
|
||||||
})
|
|
||||||
->addColumn('kode_sub_pekerjaan',function($model){
|
|
||||||
return $model->sub_job->kode;
|
|
||||||
})
|
|
||||||
->addColumn('name_sub_pekerjaan',function($model){
|
|
||||||
return $model->sub_job->name;
|
|
||||||
})
|
|
||||||
->addColumn('kode_sub_sub_pekerjaan',function($model){
|
|
||||||
return $model->sub_sub_job->kode;
|
|
||||||
})
|
|
||||||
->addColumn('name_sub_sub_pekerjaan',function($model){
|
|
||||||
return $model->sub_sub_job->name;
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('action', 'pages.app.document._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(Document $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('document-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('kode_directorat')->title('Kode Direktorat'),
|
|
||||||
Column::make('name_directorat')->title('Nama Direktorat'),
|
|
||||||
Column::make('kode_sub_directorat')->title('Kode Sub Direktorat'),
|
|
||||||
Column::make('name_sub_directorat')->title('Nama Sub Direktorat'),
|
|
||||||
Column::make('kode_pekerjaan')->title('Kode Pekerjaan'),
|
|
||||||
Column::make('name_pekerjaan')->title('Nama Pekerjaan'),
|
|
||||||
Column::make('kode_sub_pekerjaan')->title('Kode Sub Pekerjaan'),
|
|
||||||
Column::make('name_sub_pekerjaan')->title('Nama Sub Pekerjaan'),
|
|
||||||
Column::make('kode_sub_sub_pekerjaan')->title('Kode Sub Sub Pekerjaan'),
|
|
||||||
Column::make('name_sub_sub_pekerjaan')->title('Nama Sub Sub Pekerjaan'),
|
|
||||||
Column::make('status'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Document_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\DocumentType;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class DocumentTypeDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('action', 'pages.app.document-type._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(DocumentType $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('document-type-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Document_Type_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\Job;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class JobDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('subDirectorat', 'name', 'like', '%'.$search['value'].'%');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('directorat', function ($job) {
|
|
||||||
return $job->directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('sub_directorat', function ($job) {
|
|
||||||
return $job->subDirectorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('action', 'pages.masters.job._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(Job $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('job-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('directorat'),
|
|
||||||
Column::make('sub_directorat'),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Job_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,120 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables\Logs;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\Models\Activity;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class AuditLogsDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build DataTable class.
|
|
||||||
*
|
|
||||||
* @param mixed $query Results from query() method.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\DataTableAbstract
|
|
||||||
*/
|
|
||||||
public function dataTable($query)
|
|
||||||
{
|
|
||||||
return datatables()
|
|
||||||
->eloquent($query)
|
|
||||||
->rawColumns(['description', 'properties', 'action'])
|
|
||||||
->editColumn('id', function (Activity $model) {
|
|
||||||
return $model->id;
|
|
||||||
})
|
|
||||||
->editColumn('subject_id', function (Activity $model) {
|
|
||||||
if (!isset($model->subject)) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($model->subject->name)) {
|
|
||||||
return $model->subject->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $model->subject->user()->first()->name;
|
|
||||||
})
|
|
||||||
->editColumn('causer_id', function (Activity $model) {
|
|
||||||
return $model->causer ? $model->causer->name : __('System');
|
|
||||||
})
|
|
||||||
->editColumn('properties', function (Activity $model) {
|
|
||||||
$content = $model->properties;
|
|
||||||
|
|
||||||
return view('pages.log.audit._details', compact('content'));
|
|
||||||
})
|
|
||||||
->editColumn('created_at', function (Activity $model) {
|
|
||||||
return $model->created_at->format('d M, Y H:i:s');
|
|
||||||
})
|
|
||||||
->addColumn('action', function (Activity $model) {
|
|
||||||
return view('pages.log.audit._action-menu', compact('model'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get query source of dataTable.
|
|
||||||
*
|
|
||||||
* @param Activity $model
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
|
||||||
*/
|
|
||||||
public function query(Activity $model)
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use html builder.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\Html\Builder
|
|
||||||
*/
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('audit-log-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(true)
|
|
||||||
->orderBy(6)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(false)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get columns.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getColumns()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('id')->title('Log ID'),
|
|
||||||
Column::make('log_name')->title(__('Location')),
|
|
||||||
Column::make('description'),
|
|
||||||
Column::make('subject_type'),
|
|
||||||
Column::make('subject_id')->title(__('Subject')),
|
|
||||||
Column::make('causer_id')->title(__('Causer')),
|
|
||||||
Column::make('created_at'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->addClass('text-center')
|
|
||||||
->responsivePriority(-1),
|
|
||||||
Column::make('properties')->addClass('none'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get filename for export.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function filename() : string
|
|
||||||
{
|
|
||||||
return 'DataLogs_'.date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,143 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables\Logs;
|
|
||||||
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Jackiedo\LogReader\Exceptions\UnableToRetrieveLogFilesException;
|
|
||||||
use Jackiedo\LogReader\LogReader;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class SystemLogsDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build DataTable class.
|
|
||||||
*
|
|
||||||
* @param mixed $query Results from query() method.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\DataTableAbstract
|
|
||||||
*/
|
|
||||||
public function dataTable($query)
|
|
||||||
{
|
|
||||||
return datatables()
|
|
||||||
->collection($query)
|
|
||||||
->rawColumns(['action', 'level'])
|
|
||||||
->editColumn('id', function (Collection $model) {
|
|
||||||
return Str::limit($model->get('id'), 5, '');
|
|
||||||
})
|
|
||||||
->editColumn('file_path', function (Collection $model) {
|
|
||||||
return Str::limit($model->get('file_path'));
|
|
||||||
})
|
|
||||||
->editColumn('message', function (Collection $model) {
|
|
||||||
return Str::limit($model->get('context')->message, 95);
|
|
||||||
})
|
|
||||||
->editColumn('date', function (Collection $model) {
|
|
||||||
return $model->get('date')->format('d M, Y H:i:s');
|
|
||||||
})
|
|
||||||
->editColumn('level', function (Collection $model) {
|
|
||||||
$styles = [
|
|
||||||
'emergency' => 'danger',
|
|
||||||
'alert' => 'warning',
|
|
||||||
'critical' => 'danger',
|
|
||||||
'error' => 'danger',
|
|
||||||
'warning' => 'warning',
|
|
||||||
'notice' => 'success',
|
|
||||||
'info' => 'info',
|
|
||||||
'debug' => 'primary',
|
|
||||||
];
|
|
||||||
$style = 'info';
|
|
||||||
if (isset($styles[$model->get('level')])) {
|
|
||||||
$style = $styles[$model->get('level')];
|
|
||||||
}
|
|
||||||
$value = $model->get('level');
|
|
||||||
|
|
||||||
return '<div class="badge badge-light-'.$style.' fw-bolder">'.$value.'</div>';
|
|
||||||
})
|
|
||||||
->editColumn('context', function (Collection $model) {
|
|
||||||
$content = $model->get('context');
|
|
||||||
|
|
||||||
return view('pages.log.system._details', compact('content'));
|
|
||||||
})
|
|
||||||
->addColumn('action', function (Collection $model) {
|
|
||||||
return view('pages.log.system._action-menu', compact('model'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get query source of dataTable.
|
|
||||||
*
|
|
||||||
* @param LogReader $model
|
|
||||||
*
|
|
||||||
* @return Collection
|
|
||||||
*/
|
|
||||||
public function query(LogReader $model)
|
|
||||||
{
|
|
||||||
$data = collect();
|
|
||||||
|
|
||||||
$model->setLogPath(storage_path('logs'));
|
|
||||||
|
|
||||||
try {
|
|
||||||
$data = $model->get()->merge($data);
|
|
||||||
} catch (UnableToRetrieveLogFilesException $exception) {
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = $data->map(function ($a) {
|
|
||||||
return (collect($a))->only(['id', 'date', 'environment', 'level', 'file_path', 'context']);
|
|
||||||
});
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use html builder.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\Html\Builder
|
|
||||||
*/
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('system-log-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(true)
|
|
||||||
->orderBy(3)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(false)
|
|
||||||
->parameters(['scrollX' => true])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get columns.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getColumns()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('id')->title('Log ID')->width(50),
|
|
||||||
Column::make('message'),
|
|
||||||
Column::make('level'),
|
|
||||||
Column::make('date')->width(130),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->addClass('text-center')
|
|
||||||
->responsivePriority(-1),
|
|
||||||
Column::make('environment')->addClass('none'),
|
|
||||||
Column::make('file_path')->title(__('Log Path'))->addClass('none'),
|
|
||||||
Column::make('context')->addClass('none'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get filename for export.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function filename() : string
|
|
||||||
{
|
|
||||||
return 'SystemLogs_'.date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\SpecialCode;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class SpecialCodeDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('action', 'pages.masters.special-code._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(SpecialCode $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('special-code-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Special_Code_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,94 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\SubDirectorat;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class SubDirectoratDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('directorat', function ($subDirectorat) {
|
|
||||||
return $subDirectorat->directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('action', 'pages.masters.sub-directorat._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(SubDirectorat $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('sub-directorat-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('directorat'),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Sub_Directorat_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\SubJob;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class SubJobDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('subDirectorat', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('job', 'name', 'like', '%'.$search['value'].'%');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('directorat', function ($subJob) {
|
|
||||||
return $subJob->directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('sub_directorat', function ($subJob) {
|
|
||||||
return $subJob->subDirectorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('job', function ($subJob) {
|
|
||||||
return $subJob->job->name;
|
|
||||||
})
|
|
||||||
->addColumn('action', 'pages.masters.sub-job._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(SubJob $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('sub-job-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('directorat'),
|
|
||||||
Column::make('sub_directorat'),
|
|
||||||
Column::make('job'),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Sub_Job_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,109 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables;
|
|
||||||
|
|
||||||
use App\Models\SubSubJob;
|
|
||||||
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
|
||||||
use Yajra\DataTables\EloquentDataTable;
|
|
||||||
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
|
||||||
use Yajra\DataTables\Html\Button;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Html\Editor\Editor;
|
|
||||||
use Yajra\DataTables\Html\Editor\Fields;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class SubSubJobDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build the DataTable class.
|
|
||||||
*
|
|
||||||
* @param QueryBuilder $query Results from query() method.
|
|
||||||
*/
|
|
||||||
public function dataTable(QueryBuilder $query): EloquentDataTable
|
|
||||||
{
|
|
||||||
return (new EloquentDataTable($query))
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('name', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('subDirectorat', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('job', 'name', 'like', '%'.$search['value'].'%')
|
|
||||||
->orWhereRelation('subJob', 'name', 'like', '%'.$search['value'].'%');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('directorat', function ($subJob) {
|
|
||||||
return $subJob->directorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('sub_directorat', function ($subJob) {
|
|
||||||
return $subJob->subDirectorat->name;
|
|
||||||
})
|
|
||||||
->addColumn('job', function ($subJob) {
|
|
||||||
return $subJob->job->name;
|
|
||||||
})
|
|
||||||
->addColumn('sub_job', function ($subJob) {
|
|
||||||
return $subJob->subJob->name;
|
|
||||||
})
|
|
||||||
->addColumn('action', 'pages.masters.sub-sub-job._action')
|
|
||||||
->setRowId('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the query source of dataTable.
|
|
||||||
*/
|
|
||||||
public function query(SubSubJob $model): QueryBuilder
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use the html builder.
|
|
||||||
*/
|
|
||||||
public function html(): HtmlBuilder
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('sub-sub-job-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(true)
|
|
||||||
->orderBy(1)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the dataTable columns definition.
|
|
||||||
*/
|
|
||||||
public function getColumns(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('directorat'),
|
|
||||||
Column::make('sub_directorat'),
|
|
||||||
Column::make('job'),
|
|
||||||
Column::make('sub_job'),
|
|
||||||
Column::make('kode'),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->width(60)
|
|
||||||
->addClass('text-center'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filename for export.
|
|
||||||
*/
|
|
||||||
protected function filename(): string
|
|
||||||
{
|
|
||||||
return 'Sub_Sub_Job_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,102 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables\Users;
|
|
||||||
|
|
||||||
use App\Models\PermissionGroup;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class PermissionsDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build DataTable class.
|
|
||||||
*
|
|
||||||
* @param mixed $query Results from query() method.
|
|
||||||
* @return \Yajra\DataTables\DataTableAbstract
|
|
||||||
*/
|
|
||||||
public function dataTable($query)
|
|
||||||
{
|
|
||||||
return datatables()
|
|
||||||
->eloquent($query)
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('name', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->rawColumns(['action','role'])
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('name', function (PermissionGroup $model) {
|
|
||||||
return $model->name;
|
|
||||||
})
|
|
||||||
->addColumn('role', function (PermissionGroup $model){
|
|
||||||
$role = $model->roles($model);
|
|
||||||
return view('pages.users.permissions._checkbox', compact('role'));
|
|
||||||
})
|
|
||||||
->addColumn('action', function (PermissionGroup $model) {
|
|
||||||
return view('pages.users.permissions._action', compact('model'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get query source of dataTable.
|
|
||||||
*
|
|
||||||
* @param \App\Models\PermissionGroup $model
|
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
|
||||||
*/
|
|
||||||
public function query(PermissionGroup $model)
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use html builder.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\Html\Builder
|
|
||||||
*/
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('user-permissions-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->orderBy(1,'asc')
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(false)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get columns.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getColumns()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('name')->title('Name'),
|
|
||||||
Column::make('role')->title('Assign To'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->addClass('text-center')
|
|
||||||
->responsivePriority(-1),
|
|
||||||
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get filename for export
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function filename() : string
|
|
||||||
{
|
|
||||||
return 'Permissions_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables\Users;
|
|
||||||
|
|
||||||
use Spatie\Permission\Models\Role;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class RolesDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build DataTable class.
|
|
||||||
*
|
|
||||||
* @param mixed $query Results from query() method.
|
|
||||||
* @return \Yajra\DataTables\DataTableAbstract
|
|
||||||
*/
|
|
||||||
public function dataTable($query)
|
|
||||||
{
|
|
||||||
return datatables()
|
|
||||||
->eloquent($query)
|
|
||||||
->rawColumns(['action'])
|
|
||||||
->addIndexColumn()
|
|
||||||
->filter(function ($query) {
|
|
||||||
if (request()->has('search')) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
$query->where('name', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->addColumn('action', function (Role $model) {
|
|
||||||
return view('pages.users.roles._action', compact('model'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get query source of dataTable.
|
|
||||||
*
|
|
||||||
* @param \App\Models\Role $model
|
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
|
||||||
*/
|
|
||||||
public function query(Role $model)
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use html builder.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\Html\Builder
|
|
||||||
*/
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('user-roles-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->orderBy(1,'asc')
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(false)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get columns.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getColumns()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('name'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->addClass('text-center')
|
|
||||||
->responsivePriority(-1),
|
|
||||||
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get filename for export.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function filename() : string
|
|
||||||
{
|
|
||||||
return 'Roles_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,97 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\DataTables\Users;
|
|
||||||
|
|
||||||
use App\Models\User;
|
|
||||||
use Yajra\DataTables\Html\Column;
|
|
||||||
use Yajra\DataTables\Services\DataTable;
|
|
||||||
|
|
||||||
class UsersDataTable extends DataTable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Build DataTable class.
|
|
||||||
*
|
|
||||||
* @param mixed $query Results from query() method.
|
|
||||||
* @return \Yajra\DataTables\DataTableAbstract
|
|
||||||
*/
|
|
||||||
public function dataTable($query)
|
|
||||||
{
|
|
||||||
|
|
||||||
return datatables()
|
|
||||||
->eloquent($query)
|
|
||||||
->filter(function ($query) {
|
|
||||||
$search = request()->get('search');
|
|
||||||
if ($search['value']!=="") {
|
|
||||||
$query->where('name', 'like', "%" . $search['value'] . "%")
|
|
||||||
->orWhere('email', 'like', "%" . $search['value'] . "%");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->rawColumns(['action'])
|
|
||||||
->addIndexColumn()
|
|
||||||
->addColumn('action', function (User $model) {
|
|
||||||
return view('pages.users.users._action', compact('model'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get query source of dataTable.
|
|
||||||
*
|
|
||||||
* @param \App\Models\User $model
|
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
|
||||||
*/
|
|
||||||
public function query(User $model)
|
|
||||||
{
|
|
||||||
return $model->newQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optional method if you want to use html builder.
|
|
||||||
*
|
|
||||||
* @return \Yajra\DataTables\Html\Builder
|
|
||||||
*/
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return $this->builder()
|
|
||||||
->setTableId('user-users-table')
|
|
||||||
->columns($this->getColumns())
|
|
||||||
->minifiedAjax()
|
|
||||||
->orderBy(1,'asc')
|
|
||||||
->stateSave(false)
|
|
||||||
->responsive()
|
|
||||||
->autoWidth(false)
|
|
||||||
->parameters([
|
|
||||||
'scrollX' => true,
|
|
||||||
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
|
||||||
])
|
|
||||||
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get columns.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getColumns()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
|
||||||
Column::make('name')->title(__('Name')),
|
|
||||||
Column::make('email'),
|
|
||||||
Column::computed('action')
|
|
||||||
->exportable(false)
|
|
||||||
->printable(false)
|
|
||||||
->addClass('text-center')
|
|
||||||
->responsivePriority(-1),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get filename for export.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
protected function filename() : string
|
|
||||||
{
|
|
||||||
return 'Users_' . date('YmdHis');
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,6 +3,7 @@
|
|||||||
namespace App\Exceptions;
|
namespace App\Exceptions;
|
||||||
|
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
class Handler extends ExceptionHandler
|
class Handler extends ExceptionHandler
|
||||||
@ -46,5 +47,14 @@ class Handler extends ExceptionHandler
|
|||||||
$this->reportable(function (Throwable $e) {
|
$this->reportable(function (Throwable $e) {
|
||||||
//
|
//
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$this->renderable(function (NotFoundHttpException $e, $request) {
|
||||||
|
if ($request->is('api/*')) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Not found.'
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,425 +1,545 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
if (!function_exists('theme')) {
|
if (!function_exists('theme')) {
|
||||||
function theme()
|
function theme()
|
||||||
{
|
{
|
||||||
return app(App\Core\Theme::class);
|
return app(App\Core\Theme::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getName')) {
|
if (!function_exists('getName')) {
|
||||||
/**
|
/**
|
||||||
* Get product name
|
* Get product name
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function getName()
|
function getName()
|
||||||
{
|
{
|
||||||
return config('settings.KT_THEME');
|
return config('settings.KT_THEME');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addHtmlAttribute')) {
|
if (!function_exists('addHtmlAttribute')) {
|
||||||
/**
|
/**
|
||||||
* Add HTML attributes by scope
|
* Add HTML attributes by scope
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
* @param $name
|
* @param $name
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addHtmlAttribute($scope, $name, $value)
|
function addHtmlAttribute($scope, $name, $value)
|
||||||
{
|
{
|
||||||
theme()->addHtmlAttribute($scope, $name, $value);
|
theme()->addHtmlAttribute($scope, $name, $value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addHtmlAttributes')) {
|
if (!function_exists('addHtmlAttributes')) {
|
||||||
/**
|
/**
|
||||||
* Add multiple HTML attributes by scope
|
* Add multiple HTML attributes by scope
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
* @param $attributes
|
* @param $attributes
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addHtmlAttributes($scope, $attributes)
|
function addHtmlAttributes($scope, $attributes)
|
||||||
{
|
{
|
||||||
theme()->addHtmlAttributes($scope, $attributes);
|
theme()->addHtmlAttributes($scope, $attributes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addHtmlClass')) {
|
if (!function_exists('addHtmlClass')) {
|
||||||
/**
|
/**
|
||||||
* Add HTML class by scope
|
* Add HTML class by scope
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addHtmlClass($scope, $value)
|
function addHtmlClass($scope, $value)
|
||||||
{
|
{
|
||||||
theme()->addHtmlClass($scope, $value);
|
theme()->addHtmlClass($scope, $value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('printHtmlAttributes')) {
|
if (!function_exists('printHtmlAttributes')) {
|
||||||
/**
|
/**
|
||||||
* Print HTML attributes for the HTML template
|
* Print HTML attributes for the HTML template
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function printHtmlAttributes($scope)
|
function printHtmlAttributes($scope)
|
||||||
{
|
{
|
||||||
return theme()->printHtmlAttributes($scope);
|
return theme()->printHtmlAttributes($scope);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('printHtmlClasses')) {
|
if (!function_exists('printHtmlClasses')) {
|
||||||
/**
|
/**
|
||||||
* Print HTML classes for the HTML template
|
* Print HTML classes for the HTML template
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
* @param $full
|
* @param $full
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function printHtmlClasses($scope, $full = true)
|
function printHtmlClasses($scope, $full = true)
|
||||||
{
|
{
|
||||||
return theme()->printHtmlClasses($scope, $full);
|
return theme()->printHtmlClasses($scope, $full);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getSvgIcon')) {
|
if (!function_exists('getSvgIcon')) {
|
||||||
/**
|
/**
|
||||||
* Get SVG icon content
|
* Get SVG icon content
|
||||||
*
|
*
|
||||||
* @param $path
|
* @param $path
|
||||||
* @param $classNames
|
* @param $classNames
|
||||||
* @param $folder
|
* @param $folder
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getSvgIcon($path, $classNames = 'svg-icon', $folder = 'assets/media/icons/')
|
function getSvgIcon($path, $classNames = 'svg-icon', $folder = 'assets/media/icons/')
|
||||||
{
|
{
|
||||||
return theme()->getSvgIcon($path, $classNames, $folder);
|
return theme()->getSvgIcon($path, $classNames, $folder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('setModeSwitch')) {
|
if (!function_exists('setModeSwitch')) {
|
||||||
/**
|
/**
|
||||||
* Set dark mode enabled status
|
* Set dark mode enabled status
|
||||||
*
|
*
|
||||||
* @param $flag
|
* @param $flag
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function setModeSwitch($flag)
|
function setModeSwitch($flag)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('isModeSwitchEnabled')) {
|
if (!function_exists('isModeSwitchEnabled')) {
|
||||||
/**
|
/**
|
||||||
* Check dark mode status
|
* Check dark mode status
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function isModeSwitchEnabled()
|
function isModeSwitchEnabled()
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('setModeDefault')) {
|
if (!function_exists('setModeDefault')) {
|
||||||
/**
|
/**
|
||||||
* Set the mode to dark or light
|
* Set the mode to dark or light
|
||||||
*
|
*
|
||||||
* @param $mode
|
* @param $mode
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function setModeDefault($mode)
|
function setModeDefault($mode)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getModeDefault')) {
|
if (!function_exists('getModeDefault')) {
|
||||||
/**
|
/**
|
||||||
* Get current mode
|
* Get current mode
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function getModeDefault()
|
function getModeDefault()
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('setDirection')) {
|
if (!function_exists('setDirection')) {
|
||||||
/**
|
/**
|
||||||
* Set style direction
|
* Set style direction
|
||||||
*
|
*
|
||||||
* @param $direction
|
* @param $direction
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function setDirection($direction)
|
function setDirection($direction)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getDirection')) {
|
if (!function_exists('getDirection')) {
|
||||||
/**
|
/**
|
||||||
* Get style direction
|
* Get style direction
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function getDirection()
|
function getDirection()
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('isRtlDirection')) {
|
if (!function_exists('isRtlDirection')) {
|
||||||
/**
|
/**
|
||||||
* Check if style direction is RTL
|
* Check if style direction is RTL
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function isRtlDirection()
|
function isRtlDirection()
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('extendCssFilename')) {
|
if (!function_exists('extendCssFilename')) {
|
||||||
/**
|
/**
|
||||||
* Extend CSS file name with RTL or dark mode
|
* Extend CSS file name with RTL or dark mode
|
||||||
*
|
*
|
||||||
* @param $path
|
* @param $path
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function extendCssFilename($path)
|
function extendCssFilename($path)
|
||||||
{
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('includeFavicon')) {
|
if (!function_exists('includeFavicon')) {
|
||||||
/**
|
/**
|
||||||
* Include favicon from settings
|
* Include favicon from settings
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function includeFavicon()
|
function includeFavicon()
|
||||||
{
|
{
|
||||||
return theme()->includeFavicon();
|
return theme()->includeFavicon();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('includeFonts')) {
|
if (!function_exists('includeFonts')) {
|
||||||
/**
|
/**
|
||||||
* Include the fonts from settings
|
* Include the fonts from settings
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function includeFonts()
|
function includeFonts()
|
||||||
{
|
{
|
||||||
return theme()->includeFonts();
|
return theme()->includeFonts();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getGlobalAssets')) {
|
if (!function_exists('getGlobalAssets')) {
|
||||||
/**
|
/**
|
||||||
* Get the global assets
|
* Get the global assets
|
||||||
*
|
*
|
||||||
* @param $type
|
* @param $type
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getGlobalAssets($type = 'js')
|
function getGlobalAssets($type = 'js')
|
||||||
{
|
{
|
||||||
return theme()->getGlobalAssets($type);
|
return theme()->getGlobalAssets($type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addVendors')) {
|
if (!function_exists('addVendors')) {
|
||||||
/**
|
/**
|
||||||
* Add multiple vendors to the page by name. Refer to settings KT_THEME_VENDORS
|
* Add multiple vendors to the page by name. Refer to settings KT_THEME_VENDORS
|
||||||
*
|
*
|
||||||
* @param $vendors
|
* @param $vendors
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addVendors($vendors)
|
function addVendors($vendors)
|
||||||
{
|
{
|
||||||
theme()->addVendors($vendors);
|
theme()->addVendors($vendors);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addVendor')) {
|
if (!function_exists('addVendor')) {
|
||||||
/**
|
/**
|
||||||
* Add single vendor to the page by name. Refer to settings KT_THEME_VENDORS
|
* Add single vendor to the page by name. Refer to settings KT_THEME_VENDORS
|
||||||
*
|
*
|
||||||
* @param $vendor
|
* @param $vendor
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addVendor($vendor)
|
function addVendor($vendor)
|
||||||
{
|
{
|
||||||
theme()->addVendor($vendor);
|
theme()->addVendor($vendor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addJavascriptFile')) {
|
if (!function_exists('addJavascriptFile')) {
|
||||||
/**
|
/**
|
||||||
* Add custom javascript file to the page
|
* Add custom javascript file to the page
|
||||||
*
|
*
|
||||||
* @param $file
|
* @param $file
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addJavascriptFile($file)
|
function addJavascriptFile($file)
|
||||||
{
|
{
|
||||||
theme()->addJavascriptFile($file);
|
theme()->addJavascriptFile($file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('addCssFile')) {
|
if (!function_exists('addCssFile')) {
|
||||||
/**
|
/**
|
||||||
* Add custom CSS file to the page
|
* Add custom CSS file to the page
|
||||||
*
|
*
|
||||||
* @param $file
|
* @param $file
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function addCssFile($file)
|
function addCssFile($file)
|
||||||
{
|
{
|
||||||
theme()->addCssFile($file);
|
theme()->addCssFile($file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getVendors')) {
|
if (!function_exists('getVendors')) {
|
||||||
/**
|
/**
|
||||||
* Get vendor files from settings. Refer to settings KT_THEME_VENDORS
|
* Get vendor files from settings. Refer to settings KT_THEME_VENDORS
|
||||||
*
|
*
|
||||||
* @param $type
|
* @param $type
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getVendors($type)
|
function getVendors($type)
|
||||||
{
|
{
|
||||||
return theme()->getVendors($type);
|
return theme()->getVendors($type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getCustomJs')) {
|
if (!function_exists('getCustomJs')) {
|
||||||
/**
|
/**
|
||||||
* Get custom js files from the settings
|
* Get custom js files from the settings
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getCustomJs()
|
function getCustomJs()
|
||||||
{
|
{
|
||||||
return theme()->getCustomJs();
|
return theme()->getCustomJs();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getCustomCss')) {
|
if (!function_exists('getCustomCss')) {
|
||||||
/**
|
/**
|
||||||
* Get custom css files from the settings
|
* Get custom css files from the settings
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getCustomCss()
|
function getCustomCss()
|
||||||
{
|
{
|
||||||
return theme()->getCustomCss();
|
return theme()->getCustomCss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getHtmlAttribute')) {
|
if (!function_exists('getHtmlAttribute')) {
|
||||||
/**
|
/**
|
||||||
* Get HTML attribute based on the scope
|
* Get HTML attribute based on the scope
|
||||||
*
|
*
|
||||||
* @param $scope
|
* @param $scope
|
||||||
* @param $attribute
|
* @param $attribute
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getHtmlAttribute($scope, $attribute)
|
function getHtmlAttribute($scope, $attribute)
|
||||||
{
|
{
|
||||||
return theme()->getHtmlAttribute($scope, $attribute);
|
return theme()->getHtmlAttribute($scope, $attribute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('isUrl')) {
|
if (!function_exists('isUrl')) {
|
||||||
/**
|
/**
|
||||||
* Get HTML attribute based on the scope
|
* Get HTML attribute based on the scope
|
||||||
*
|
*
|
||||||
* @param $url
|
* @param $url
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
function isUrl($url)
|
function isUrl($url)
|
||||||
{
|
{
|
||||||
return filter_var($url, FILTER_VALIDATE_URL);
|
return filter_var($url, FILTER_VALIDATE_URL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('image')) {
|
if (!function_exists('image')) {
|
||||||
/**
|
/**
|
||||||
* Get image url by path
|
* Get image url by path
|
||||||
*
|
*
|
||||||
* @param $path
|
* @param $path
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function image($path)
|
function image($path)
|
||||||
{
|
{
|
||||||
return asset('assets/media/'.$path);
|
return asset('assets/media/' . $path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('getIcon')) {
|
if (!function_exists('getIcon')) {
|
||||||
/**
|
/**
|
||||||
* Get icon
|
* Get icon
|
||||||
*
|
*
|
||||||
* @param $path
|
* @param $path
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getIcon($name, $class = '', $type = '')
|
function getIcon($name, $class = '', $type = '')
|
||||||
{
|
{
|
||||||
return theme()->getIcon($name, $class, $type);
|
return theme()->getIcon($name, $class, $type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function verify_user($id, $passwd, $SERVER_ADDR, $IPUserManager, $portUserManager, $appId)
|
||||||
|
{
|
||||||
|
|
||||||
|
$USERMANPROG = "user_verification.php";
|
||||||
|
$sock = fsockopen("tcp://" . $IPUserManager, $portUserManager, $errno, $errstr, 30);
|
||||||
|
|
||||||
|
|
||||||
|
if (!$sock) die("$errstr ($errno)\n");
|
||||||
|
|
||||||
|
$data = "appsid=" . urlencode($appId) . "&loginid=" . urlencode($id) . "&passwd=" . urlencode($passwd) . "&addr=" . $SERVER_ADDR . "&version=2";
|
||||||
|
|
||||||
|
//echo "data: $data <BR>";
|
||||||
|
|
||||||
|
fwrite($sock, "POST /user_verification_dev.php HTTP/1.0\r\n");
|
||||||
|
fwrite($sock, "Host: $IPUserManager\r\n");
|
||||||
|
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
|
||||||
|
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
|
||||||
|
fwrite($sock, "Accept: */*\r\n");
|
||||||
|
fwrite($sock, "\r\n");
|
||||||
|
fwrite($sock, "$data\r\n");
|
||||||
|
fwrite($sock, "\r\n");
|
||||||
|
|
||||||
|
$headers = "";
|
||||||
|
while ($str = trim(fgets($sock, 4096))) $headers .= "$str\n";
|
||||||
|
|
||||||
|
$body = "";
|
||||||
|
while (!feof($sock)) $body .= fgets($sock, 4096);
|
||||||
|
|
||||||
|
|
||||||
|
fclose($sock);
|
||||||
|
|
||||||
|
return decompress($body);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getAllowableScript($sessionMenu)
|
||||||
|
{
|
||||||
|
//$sessionMenu = $_SESSION['MENU'];
|
||||||
|
|
||||||
|
if (!empty($sessionMenu)) {
|
||||||
|
$tempMenuArrayLine = explode('-', $sessionMenu);
|
||||||
|
//print_r($tempMenuArrayLine);
|
||||||
|
if (count($tempMenuArrayLine) > 0) {
|
||||||
|
foreach ($tempMenuArrayLine as $tkey => $tval) {
|
||||||
|
$tempMenuArray = explode('|', $tval);
|
||||||
|
if (count($tempMenuArray) > 0) {
|
||||||
|
foreach ($tempMenuArray as $mkey => $mval) {
|
||||||
|
[$menukey, $menuval] = explode('>', $mval);
|
||||||
|
if ($menukey === 'LINK') {
|
||||||
|
$SCRIPT_ALLOW[$menuval] = 1;
|
||||||
|
}
|
||||||
|
//$menu[$menuCounter][$menukey] = $menuval;
|
||||||
|
}
|
||||||
|
//$menuCounter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $SCRIPT_ALLOW;
|
||||||
|
}
|
||||||
|
|
||||||
|
function decompress($data)
|
||||||
|
{
|
||||||
|
$text = '';
|
||||||
|
$total = strlen($data);
|
||||||
|
for ($j = 0; $j < $total; $j = $j + 2) {
|
||||||
|
$text .= chr(hexdec(substr($data, $j, 2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function compress($data)
|
||||||
|
{
|
||||||
|
$text = '';
|
||||||
|
$total = strlen($data);
|
||||||
|
for ($i = 0; $i < $total; $i++) {
|
||||||
|
$temp = dechex(ord(substr($data, $i, 1)));
|
||||||
|
if (strlen($temp) < 2) {
|
||||||
|
$temp = '0' . $temp;
|
||||||
|
}
|
||||||
|
$text .= $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function jsonToView($jsonText = '')
|
||||||
|
{
|
||||||
|
$arr = json_decode($jsonText, true);
|
||||||
|
$html = "";
|
||||||
|
if ($arr && is_array($arr)) {
|
||||||
|
$html .= _arrayToHtmlTableRecursive($arr);
|
||||||
|
}
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _arrayToHtmlTableRecursive($arr)
|
||||||
|
{
|
||||||
|
$str = "<table><tbody>";
|
||||||
|
foreach ($arr as $key => $val) {
|
||||||
|
$str .= "<tr>";
|
||||||
|
$str .= "<td>$key</td>";
|
||||||
|
$str .= "<td>";
|
||||||
|
if (is_array($val)) {
|
||||||
|
if (!empty($val)) {
|
||||||
|
$str .= _arrayToHtmlTableRecursive($val);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$str .= "<strong>$val</strong>";
|
||||||
|
}
|
||||||
|
$str .= "</td></tr>";
|
||||||
|
}
|
||||||
|
$str .= "</tbody></table>";
|
||||||
|
|
||||||
|
return $str;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
43
app/Http/Controllers/ApiController.php
Normal file
43
app/Http/Controllers/ApiController.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller as Controller;
|
||||||
|
|
||||||
|
class ApiController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* success response method.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function sendResponse($result, $message, $code = 200)
|
||||||
|
{
|
||||||
|
$response = [
|
||||||
|
'success' => true,
|
||||||
|
'data' => $result,
|
||||||
|
'message' => $message,
|
||||||
|
];
|
||||||
|
|
||||||
|
return response()->json($response, $code);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return error response.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function sendError($error, $errorMessages = [], $code = 404)
|
||||||
|
{
|
||||||
|
$response = [
|
||||||
|
'success' => false,
|
||||||
|
'message' => $error,
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!empty($errorMessages)) {
|
||||||
|
$response['data'] = $errorMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($response, $code);
|
||||||
|
}
|
||||||
|
}
|
@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Http\Requests\Auth\LoginRequest;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
|
|
||||||
class AuthenticatedSessionController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display the login view.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\View\View
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
addJavascriptFile('assets/js/custom/authentication/sign-in/general.js');
|
|
||||||
|
|
||||||
return view('pages.auth.login');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle an incoming authentication request.
|
|
||||||
*
|
|
||||||
* @param \App\Http\Requests\Auth\LoginRequest $request
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*/
|
|
||||||
public function store(LoginRequest $request)
|
|
||||||
{
|
|
||||||
$request->authenticate();
|
|
||||||
|
|
||||||
$request->session()->regenerate();
|
|
||||||
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy an authenticated session.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*/
|
|
||||||
public function destroy(Request $request)
|
|
||||||
{
|
|
||||||
Auth::guard('web')->logout();
|
|
||||||
|
|
||||||
$request->session()->invalidate();
|
|
||||||
|
|
||||||
$request->session()->regenerateToken();
|
|
||||||
|
|
||||||
return redirect('/');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Validation\ValidationException;
|
|
||||||
|
|
||||||
class ConfirmablePasswordController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Show the confirm password view.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\View\View
|
|
||||||
*/
|
|
||||||
public function show()
|
|
||||||
{
|
|
||||||
return view('pages.auth.confirm-password');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Confirm the user's password.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
if (! Auth::guard('web')->validate([
|
|
||||||
'email' => $request->user()->email,
|
|
||||||
'password' => $request->password,
|
|
||||||
])) {
|
|
||||||
throw ValidationException::withMessages([
|
|
||||||
'password' => __('auth.password'),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->session()->put('auth.password_confirmed_at', time());
|
|
||||||
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class EmailVerificationNotificationController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Send a new email verification notification.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
if ($request->user()->hasVerifiedEmail()) {
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->user()->sendEmailVerificationNotification();
|
|
||||||
|
|
||||||
return back()->with('status', 'verification-link-sent');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class EmailVerificationPromptController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display the email verification prompt.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
return $request->user()->hasVerifiedEmail()
|
|
||||||
? redirect()->intended(RouteServiceProvider::HOME)
|
|
||||||
: view('pages.auth.verify-email');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Auth\Events\PasswordReset;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
use Illuminate\Support\Facades\Password;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Illuminate\Validation\Rules;
|
|
||||||
|
|
||||||
class NewPasswordController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display the password reset view.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\View\View
|
|
||||||
*/
|
|
||||||
public function create(Request $request)
|
|
||||||
{
|
|
||||||
return view('pages.auth.reset-password', ['request' => $request]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle an incoming new password request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'token' => ['required'],
|
|
||||||
'email' => ['required', 'email'],
|
|
||||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Here we will attempt to reset the user's password. If it is successful we
|
|
||||||
// will update the password on an actual user model and persist it to the
|
|
||||||
// database. Otherwise we will parse the error and return the response.
|
|
||||||
$status = Password::reset(
|
|
||||||
$request->only('email', 'password', 'password_confirmation', 'token'),
|
|
||||||
function ($user) use ($request) {
|
|
||||||
$user->forceFill([
|
|
||||||
'password' => Hash::make($request->password),
|
|
||||||
'remember_token' => Str::random(60),
|
|
||||||
])->save();
|
|
||||||
|
|
||||||
event(new PasswordReset($user));
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// If the password was successfully reset, we will redirect the user back to
|
|
||||||
// the application's home authenticated view. If there is an error we can
|
|
||||||
// redirect them back to where they came from with their error message.
|
|
||||||
return $status == Password::PASSWORD_RESET
|
|
||||||
? redirect()->route('login')->with('status', __($status))
|
|
||||||
: back()->withInput($request->only('email'))
|
|
||||||
->withErrors(['email' => __($status)]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Password;
|
|
||||||
|
|
||||||
class PasswordResetLinkController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display the password reset link request view.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\View\View
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
addJavascriptFile('assets/js/custom/authentication/reset-password/reset-password.js');
|
|
||||||
|
|
||||||
return view('pages.auth.forgot-password');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle an incoming password reset link request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'email' => ['required', 'email'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// We will send the password reset link to this user. Once we have attempted
|
|
||||||
// to send the link, we will examine the response then see the message we
|
|
||||||
// need to show to the user. Finally, we'll send out a proper response.
|
|
||||||
$status = Password::sendResetLink(
|
|
||||||
$request->only('email')
|
|
||||||
);
|
|
||||||
|
|
||||||
return $status == Password::RESET_LINK_SENT
|
|
||||||
? back()->with('status', __($status))
|
|
||||||
: back()->withInput($request->only('email'))
|
|
||||||
->withErrors(['email' => __($status)]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\User;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Auth\Events\Registered;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
use Illuminate\Validation\Rules;
|
|
||||||
|
|
||||||
class RegisteredUserController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display the registration view.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\View\View
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
addJavascriptFile('assets/js/custom/authentication/sign-up/general.js');
|
|
||||||
|
|
||||||
return view('pages.auth.register');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle an incoming registration request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'name' => ['required', 'string', 'max:255'],
|
|
||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
|
||||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
|
||||||
]);
|
|
||||||
|
|
||||||
$user = User::create([
|
|
||||||
'name' => $request->name,
|
|
||||||
'email' => $request->email,
|
|
||||||
'password' => Hash::make($request->password),
|
|
||||||
]);
|
|
||||||
|
|
||||||
event(new Registered($user));
|
|
||||||
|
|
||||||
Auth::login($user);
|
|
||||||
|
|
||||||
return redirect(RouteServiceProvider::HOME);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use Illuminate\Auth\Events\Verified;
|
|
||||||
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
|
||||||
|
|
||||||
class VerifyEmailController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Mark the authenticated user's email address as verified.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Foundation\Auth\EmailVerificationRequest $request
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
|
||||||
*/
|
|
||||||
public function __invoke(EmailVerificationRequest $request)
|
|
||||||
{
|
|
||||||
if ($request->user()->hasVerifiedEmail()) {
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->user()->markEmailAsVerified()) {
|
|
||||||
event(new Verified($request->user()));
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,123 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\DirectoratDataTable;
|
|
||||||
use App\Http\Requests\StoreDirectoratRequest;
|
|
||||||
use App\Http\Requests\UpdateDirectoratRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Spatie\Activitylog\Facades\CauserResolver;
|
|
||||||
|
|
||||||
class DirectoratController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
|
|
||||||
//CauserResolver::setCauser($this->user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(DirectoratDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return $dataTable->render('pages.masters.directorat.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreDirectoratRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the Directorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
Directorat::create($validated);
|
|
||||||
//return redirect()->route('directorat.index')->with('success', 'Directorat created successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Directorat created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('directorat.index')->with('error', 'Directorat created failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Directorat created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Directorat $directorat)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$directorat = Directorat::find($id);
|
|
||||||
echo json_encode($directorat);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateDirectoratRequest $request, Directorat $directorat)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the Directorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
CauserResolver::setCauser($this->user);
|
|
||||||
$directorat->update($validated);
|
|
||||||
|
|
||||||
//return redirect()->route('directorat.index')->with('success', 'Directorat updated successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Directorat updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('directorat.index')->with('error', 'Directorat updated failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Directorat updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Directorat $directorat){
|
|
||||||
$directorat->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Directorat deleted successfully.']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,179 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\DocumentDataTable;
|
|
||||||
use App\Http\Requests\StoreDocumentRequest;
|
|
||||||
use App\Http\Requests\UpdateDocumentRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\Document;
|
|
||||||
use App\Models\DocumentDetail;
|
|
||||||
use App\Models\DocumentType;
|
|
||||||
use App\Models\Job;
|
|
||||||
use App\Models\SpecialCode;
|
|
||||||
use App\Models\SubDirectorat;
|
|
||||||
use App\Models\SubJob;
|
|
||||||
use App\Models\SubSubJob;
|
|
||||||
use Exception;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Spatie\Activitylog\Facades\CauserResolver;
|
|
||||||
|
|
||||||
class DocumentController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
|
|
||||||
//CauserResolver::setCauser($this->user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(DocumentDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('app.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return $dataTable->render('pages.app.document.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('app.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
addVendor('chained-select');
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
$special_code = SpecialCode::all();
|
|
||||||
$document_type = DocumentType::all();
|
|
||||||
return view('pages.app.document.create', compact('directorat', 'special_code', 'document_type'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreDocumentRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('app.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the Document...
|
|
||||||
if ($validated) {
|
|
||||||
$validated['sequence'] = 1;
|
|
||||||
try {
|
|
||||||
$created = Document::create($validated);
|
|
||||||
|
|
||||||
if ($created) {
|
|
||||||
$detail = [
|
|
||||||
'document_id' => $created->id,
|
|
||||||
'document_type_id' => $request->document_type_id,
|
|
||||||
'tanggal_upload' => date('Y-m-d'),
|
|
||||||
'tanggal_dokumen' => $request->tanggal_dokumen,
|
|
||||||
'nomor_dokumen' => $request->nomor_dokumen,
|
|
||||||
'perihal' => $request->perihal,
|
|
||||||
'kode_cabang' => $request->kode_cabang,
|
|
||||||
'jumlah_halaman' => $request->jumlah_halaman,
|
|
||||||
'custom_field_1' => $request->custom_field_1,
|
|
||||||
'custom_field_2' => $request->custom_field_2,
|
|
||||||
'custom_field_3' => $request->custom_field_3,
|
|
||||||
'custom_field_4' => $request->custom_field_4,
|
|
||||||
|
|
||||||
'nama_nasabah' => $request->nama_nasabah,
|
|
||||||
'no_rekening' => $request->no_rekening,
|
|
||||||
'no_cif' => $request->no_cif,
|
|
||||||
'group' => $request->group,
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
DocumentDetail::create($detail);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('document.index')->with('success', 'Document created successfully.');
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return redirect()->route('document.index')->with('error', 'Document created failed.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Document $documents)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
$document = Document::find($id);
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
$sub_directorat = SubDirectorat::where('directorat_id', $document->directorat_id)->get();
|
|
||||||
$job = Job::where('sub_directorat_id', $document->sub_directorat_id)->get();
|
|
||||||
$sub_job = SubJob::where('job_id', $document->job_id)->get();
|
|
||||||
$sub_sub_job = SubSubJob::where('sub_job_id', $document->sub_job_id)->get();
|
|
||||||
$special_code = SpecialCode::all();
|
|
||||||
$document_type = DocumentType::all();
|
|
||||||
|
|
||||||
return view('pages.app.document.edit', compact('document', 'directorat', 'sub_directorat', 'job', 'sub_job', 'sub_sub_job', 'special_code', 'document_type'));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateDocumentRequest $request, Document $documents)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('app.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the Document...
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
$document = Document::find($request->id);
|
|
||||||
$update = $document->update($validated);
|
|
||||||
|
|
||||||
|
|
||||||
return redirect()->route('document.index')->with('success', 'Document updated successfully.');
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return redirect()->route('document.index')->with('error', 'Document updated failed.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Request $request)
|
|
||||||
{
|
|
||||||
$documents = Document::find($request->document);
|
|
||||||
$documents->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Document deleted successfully.']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,118 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\DocumentTypeDataTable;
|
|
||||||
use App\Http\Requests\StoreDocumentTypeRequest;
|
|
||||||
use App\Http\Requests\UpdateDocumentTypeRequest;
|
|
||||||
use App\Models\DocumentType;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Spatie\Activitylog\Facades\CauserResolver;
|
|
||||||
|
|
||||||
class DocumentTypeController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
|
|
||||||
//CauserResolver::setCauser($this->user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(DocumentTypeDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return $dataTable->render('pages.masters.document-type.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreDocumentTypeRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the Document Type...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
DocumentType::create($validated);
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Document Type created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Document Type created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(DocumentType $document_type)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$document_type = DocumentType::find($id);
|
|
||||||
echo json_encode($document_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateDocumentTypeRequest $request, DocumentType $document_type)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the Directorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$document_type->update($validated);
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Document Type updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Document Type updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(DocumentType $document_type){
|
|
||||||
$document_type->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Document Type deleted successfully.']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,139 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\JobDataTable;
|
|
||||||
use App\Http\Requests\StoreJobRequest;
|
|
||||||
use App\Http\Requests\UpdateJobRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\Job;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class JobController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(JobDataTable $dataTable, Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
// Add Vendor
|
|
||||||
addVendor('chained-select');
|
|
||||||
|
|
||||||
if(isset($request->sub_directorat_id) && !empty($request->sub_directorat_id)) {
|
|
||||||
$this->show($request);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
return $dataTable->render('pages.masters.job.index', compact('directorat'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreJobRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the Job...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
Job::create($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'Job created successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Job created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'Job created failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Job created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Request $request)
|
|
||||||
{
|
|
||||||
$jobs = Job::where('sub_directorat_id', $request->sub_directorat_id)->get();
|
|
||||||
|
|
||||||
$data = [];
|
|
||||||
foreach ($jobs as $row) {
|
|
||||||
$result = [
|
|
||||||
$row->id => $row->name,
|
|
||||||
];
|
|
||||||
|
|
||||||
$data[] = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$job = Job::find($id);
|
|
||||||
echo json_encode($job);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateJobRequest $request, Job $job)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the Job...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$job->update($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'Job updated successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Job updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'Job updated failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Job updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Job $job){
|
|
||||||
$job->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Job deleted successfully.']);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'Job deleted successfully.');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Logs;
|
|
||||||
|
|
||||||
use App\DataTables\Logs\AuditLogsDataTable;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Spatie\Activitylog\Models\Activity;
|
|
||||||
|
|
||||||
class AuditLogsController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index(AuditLogsDataTable $dataTable)
|
|
||||||
{
|
|
||||||
return $dataTable->render('pages.log.audit.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
$activity = Activity::find($id);
|
|
||||||
|
|
||||||
// Delete from db
|
|
||||||
$activity->delete();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Logs;
|
|
||||||
|
|
||||||
use App\DataTables\Logs\SystemLogsDataTable;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Jackiedo\LogReader\LogReader;
|
|
||||||
|
|
||||||
class SystemLogsController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index(SystemLogsDataTable $dataTable)
|
|
||||||
{
|
|
||||||
return $dataTable->render('pages.log.system.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function destroy($id, LogReader $logReader)
|
|
||||||
{
|
|
||||||
return $logReader->find($id)->delete();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,118 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\SpecialCodeDataTable;
|
|
||||||
use App\Http\Requests\StoreSpecialCodeRequest;
|
|
||||||
use App\Http\Requests\UpdateSpecialCodeRequest;
|
|
||||||
use App\Models\SpecialCode;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Spatie\Activitylog\Facades\CauserResolver;
|
|
||||||
|
|
||||||
class SpecialCodeController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
|
|
||||||
//CauserResolver::setCauser($this->user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(SpecialCodeDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return $dataTable->render('pages.masters.special-code.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreSpecialCodeRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the Special Code...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
SpecialCode::create($validated);
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Special Code created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Special Code created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(SpecialCode $special_code)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$special_code = SpecialCode::find($id);
|
|
||||||
echo json_encode($special_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateSpecialCodeRequest $request, SpecialCode $special_code)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the Directorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$special_code->update($validated);
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Special Code updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Special Code updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(SpecialCode $special_code){
|
|
||||||
$special_code->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Special Code deleted successfully.']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,138 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\SubDirectoratDataTable;
|
|
||||||
use App\Http\Requests\StoreSubDirectoratRequest;
|
|
||||||
use App\Http\Requests\UpdateSubDirectoratRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\SubDirectorat;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class SubDirectoratController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(SubDirectoratDataTable $dataTable, Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if(isset($request->directorat_id) && !empty($request->directorat_id)) {
|
|
||||||
$this->show($request);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
return $dataTable->render('pages.masters.sub-directorat.index', compact('directorat'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreSubDirectoratRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the SubDirectorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
SubDirectorat::create($validated);
|
|
||||||
//return redirect()->route('directorat.index')->with('success', 'SubDirectorat created successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Directorat created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('directorat.index')->with('error', 'SubDirectorat created failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Directorat created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Request $request)
|
|
||||||
{
|
|
||||||
$subdirectorats = SubDirectorat::where('directorat_id', $request->directorat_id)->get();
|
|
||||||
|
|
||||||
$data = [];
|
|
||||||
foreach ($subdirectorats as $row) {
|
|
||||||
$result = [
|
|
||||||
$row->id => $row->name,
|
|
||||||
];
|
|
||||||
|
|
||||||
$data[] = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$subDirectorat = SubDirectorat::find($id);
|
|
||||||
echo json_encode($subDirectorat);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateSubDirectoratRequest $request, SubDirectorat $subDirectorat)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the SubDirectorat...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$subDirectorat->update($validated);
|
|
||||||
//return redirect()->route('directorat.index')->with('success', 'SubDirectorat updated successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Directorat updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('directorat.index')->with('error', 'SubDirectorat updated failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Directorat updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(SubDirectorat $subDirectorat){
|
|
||||||
$subDirectorat->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Directorat deleted successfully.']);
|
|
||||||
//return redirect()->route('sub-directorat.index')->with('success', 'Sub Directorat deleted successfully.');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,139 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\SubJobDataTable;
|
|
||||||
use App\Http\Requests\StoreSubJobRequest;
|
|
||||||
use App\Http\Requests\UpdateSubJobRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\Job;
|
|
||||||
use App\Models\SubJob;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class SubJobController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(SubJobDataTable $dataTable, Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
addVendor('chained-select');
|
|
||||||
|
|
||||||
if(isset($request->job_id) && !empty($request->job_id)) {
|
|
||||||
$this->show($request);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
return $dataTable->render('pages.masters.sub-job.index', compact('directorat'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreSubJobRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the SubJob...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
SubJob::create($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'SubJob created successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Job created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'SubJob created failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Job created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Request $request)
|
|
||||||
{
|
|
||||||
$subJob = SubJob::where('job_id', $request->job_id)->get();
|
|
||||||
|
|
||||||
$data = [];
|
|
||||||
foreach ($subJob as $row) {
|
|
||||||
$result = [
|
|
||||||
$row->id => $row->name,
|
|
||||||
];
|
|
||||||
|
|
||||||
$data[] = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$subJob = SubJob::find($id);
|
|
||||||
echo json_encode($subJob);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateSubJobRequest $request, SubJob $subJob)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Update the SubJob...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$subJob->update($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'SubJob updated successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Job updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'SubJob updated failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Job updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(SubJob $subJob){
|
|
||||||
$subJob->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Job deleted successfully.']);
|
|
||||||
//return redirect()->route('sub-job.index')->with('success', 'Sub Job deleted successfully.');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,139 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use App\DataTables\SubSubJobDataTable;
|
|
||||||
use App\Http\Requests\StoreSubSubJobRequest;
|
|
||||||
use App\Http\Requests\UpdateSubSubJobRequest;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\Job;
|
|
||||||
use App\Models\SubSubJob;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class SubSubJobController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
//$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index(SubSubJobDataTable $dataTable, Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if(isset($request->sub_job_id) && !empty($request->sub_job_id)) {
|
|
||||||
$this->show($request);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
addVendor('chained-select');
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
return $dataTable->render('pages.masters.sub-sub-job.index', compact('directorat'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create(){}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(StoreSubSubJobRequest $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
// Store the SubSubJob...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
SubSubJob::create($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'SubSubJob created successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Sub Job created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'SubSubJob created failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Sub Job created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Request $request)
|
|
||||||
{
|
|
||||||
$subSubJob = SubSubJob::where('sub_job_id', $request->sub_job_id)->get();
|
|
||||||
|
|
||||||
$data = [];
|
|
||||||
foreach ($subSubJob as $row) {
|
|
||||||
$result = [
|
|
||||||
$row->id => $row->name,
|
|
||||||
];
|
|
||||||
|
|
||||||
$data[] = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit($id){
|
|
||||||
$subJob = SubSubJob::find($id);
|
|
||||||
echo json_encode($subJob);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(UpdateSubSubJobRequest $request, SubSubJob $subSubJob)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('masters.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validate the request...
|
|
||||||
$validated = $request->validated();
|
|
||||||
// Update the SubSubJob...
|
|
||||||
if($validated){
|
|
||||||
try{
|
|
||||||
$subSubJob->update($validated);
|
|
||||||
//return redirect()->route('job.index')->with('success', 'SubSubJob updated successfully.');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Sub Job updated successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
//return redirect()->route('job.index')->with('error', 'SubSubJob updated failed.');
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Sub Sub Job updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(SubSubJob $subSubJob){
|
|
||||||
$subSubJob->delete();
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Sub Sub Job deleted successfully.']);
|
|
||||||
//return redirect()->route('sub-job.index')->with('success', 'Sub Sub Job deleted successfully.');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,205 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Users;
|
|
||||||
|
|
||||||
use App\DataTables\Users\PermissionsDataTable;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\PermissionGroup;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use App\Models\Permission;
|
|
||||||
|
|
||||||
class PermissionsController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index(PermissionsDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('permission.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any permission !');
|
|
||||||
}*/
|
|
||||||
return $dataTable->render('pages.users.permissions.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('permission.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any permission !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validation Data
|
|
||||||
$validate = $request->validate([
|
|
||||||
'name' => 'required|max:100|unique:permission_groups'
|
|
||||||
], [
|
|
||||||
'name.requried' => 'Please give a permission name'
|
|
||||||
]);
|
|
||||||
|
|
||||||
if($validate){
|
|
||||||
try{
|
|
||||||
// Process Data
|
|
||||||
$group = PermissionGroup::create(['name' => $request->name]);
|
|
||||||
|
|
||||||
$group_name = strtolower($request->name);
|
|
||||||
$data = [
|
|
||||||
$group_name.'.create',
|
|
||||||
$group_name.'.read',
|
|
||||||
$group_name.'.update',
|
|
||||||
$group_name.'.delete',
|
|
||||||
$group_name.'.authorize',
|
|
||||||
$group_name.'.report'
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach($data as $permission){
|
|
||||||
|
|
||||||
Permission::create([
|
|
||||||
'name' => $permission,
|
|
||||||
'guard_name' => 'web',
|
|
||||||
'permission_group_id' => $group->id
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Permission created successfully.']);
|
|
||||||
}catch(\Exception $e){
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Permission created failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('permission.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to edit any permission !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$permission = PermissionGroup::find($id);
|
|
||||||
echo json_encode($permission);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('permission.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to edit any permission !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validation Data
|
|
||||||
$validated = $request->validate([
|
|
||||||
'name' => 'required|max:100|unique:permission_groups,name,' . $id
|
|
||||||
], [
|
|
||||||
'name.requried' => 'Please give a permission name'
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
// Process Data
|
|
||||||
$group = PermissionGroup::find($id);
|
|
||||||
$group->name = $request->name;
|
|
||||||
|
|
||||||
if($group->save()){
|
|
||||||
$group_name = strtolower($request->name);
|
|
||||||
$permissions = Permission::where('permission_group_id', $group->id)->get();
|
|
||||||
|
|
||||||
$data = [
|
|
||||||
$group_name . '.create',
|
|
||||||
$group_name . '.read',
|
|
||||||
$group_name . '.update',
|
|
||||||
$group_name . '.delete',
|
|
||||||
$group_name . '.authorize',
|
|
||||||
$group_name . '.report'
|
|
||||||
];
|
|
||||||
|
|
||||||
$i = 0;
|
|
||||||
foreach($permissions as $permission){
|
|
||||||
$permission->name = $data[$i];
|
|
||||||
$permission->save();
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Permission updated successfully.']);
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Permission updated failed.']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('permission.delete')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to delete any role !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
$permission = PermissionGroup::find($id);
|
|
||||||
if (!is_null($permission)) {
|
|
||||||
if($permission->delete()){
|
|
||||||
Permission::where('permission_group_id',$id)->delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Permission deleted successfully.']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,190 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Users;
|
|
||||||
|
|
||||||
use App\DataTables\Users\RolesDataTable;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\PermissionGroup;
|
|
||||||
use App\Models\User;
|
|
||||||
use Exception;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Spatie\Permission\Models\Role;
|
|
||||||
use App\Models\Permission;
|
|
||||||
|
|
||||||
class RolesController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function index(RolesDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('role.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any role !');
|
|
||||||
}*/
|
|
||||||
$permissiongroups = PermissionGroup::all();
|
|
||||||
|
|
||||||
return $dataTable->render('pages.users.roles.index', compact('permissiongroups'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('role.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any role !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validation Data
|
|
||||||
$validated = $request->validate([
|
|
||||||
'name' => 'required|max:100|unique:roles'
|
|
||||||
], [
|
|
||||||
'name.requried' => 'Please give a role name'
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
// Process Data
|
|
||||||
$role = Role::create(['name' => $request->name, 'guard_name' => 'web']);
|
|
||||||
|
|
||||||
$permissions = $request->input('permissions');
|
|
||||||
|
|
||||||
if (!empty($permissions)) {
|
|
||||||
$role = Role::find($role->id);
|
|
||||||
$role->syncPermissions($permissions);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Role Created Successfully']);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Role Created Failed']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('role.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to edit any role !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$role = Role::findById($id, 'web');
|
|
||||||
$permissions = Permission::all();
|
|
||||||
$permissiongroups = PermissionGroup::all();
|
|
||||||
|
|
||||||
$_array = [
|
|
||||||
'role' => $role,
|
|
||||||
'permissions' => $permissions,
|
|
||||||
'permissiongroups' => $permissiongroups
|
|
||||||
];
|
|
||||||
|
|
||||||
return view('pages.users.roles.edit', $_array);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('role.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to edit any role !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Validation Data
|
|
||||||
$request->validate([
|
|
||||||
'name' => 'required|max:100|unique:roles,name,' . $id
|
|
||||||
], [
|
|
||||||
'name.requried' => 'Please give a role name'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$role = Role::findById($id, 'web');
|
|
||||||
$permissions = $request->input('permissions');
|
|
||||||
|
|
||||||
$role->name = $request->name;
|
|
||||||
$role->save();
|
|
||||||
|
|
||||||
if (!empty($permissions)) {
|
|
||||||
$role->syncPermissions($permissions);
|
|
||||||
}
|
|
||||||
|
|
||||||
session()->flash('success', 'Role has been updated !!');
|
|
||||||
return redirect()->route('user.roles.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('role.delete')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to delete any role !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
$role = Role::findById($id, 'web');
|
|
||||||
if (!is_null($role)) {
|
|
||||||
$role->delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
session()->flash('success', 'Role has been deleted !!');
|
|
||||||
return redirect()->route('user.roles.index');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,238 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Users;
|
|
||||||
|
|
||||||
use App\DataTables\Users\UsersDataTable;
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\User;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\UserInfo;
|
|
||||||
use Exception;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
use App\Models\Permission;
|
|
||||||
use Spatie\Permission\Models\Role;
|
|
||||||
|
|
||||||
class UsersController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware(function ($request, $next) {
|
|
||||||
$this->user = Auth::guard('web')->user();
|
|
||||||
return $next($request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
|
|
||||||
public function index(UsersDataTable $dataTable)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('user.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any users !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
addVendor('chained-select');
|
|
||||||
|
|
||||||
$directorat = Directorat::all();
|
|
||||||
$roles = Role::all();
|
|
||||||
return $dataTable->render('pages.users.users.index', compact('directorat', 'roles'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('user.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any users !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$roles = Role::all();
|
|
||||||
return view('pages.users.create', compact('roles'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('user.create')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any users !');
|
|
||||||
}*/
|
|
||||||
// Validation Data
|
|
||||||
$request->password = 'bagbag';
|
|
||||||
|
|
||||||
$validated = $request->validate([
|
|
||||||
'name' => 'required|max:50',
|
|
||||||
'email' => 'required|max:100|email|unique:users'
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
// Create New User
|
|
||||||
$user = new User();
|
|
||||||
$user->name = $request->name;
|
|
||||||
$user->email = $request->email;
|
|
||||||
$user->directorat_id = $request->directorat_id;
|
|
||||||
$user->sub_directorat_id = $request->sub_directorat_id;
|
|
||||||
$user->password = Hash::make($request->password);
|
|
||||||
|
|
||||||
$user->save();
|
|
||||||
|
|
||||||
if ($request->roles) {
|
|
||||||
$user->assignRole($request->roles);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'success',
|
|
||||||
'message' => 'User Created Successfully'
|
|
||||||
]);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'error',
|
|
||||||
'message' => $e->getMessage()
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('user.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any users !');
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('user.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any users !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$user = User::find($id);
|
|
||||||
$roles = $user->roles;
|
|
||||||
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'success',
|
|
||||||
'data' => $user,
|
|
||||||
'roles' => $roles
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
/* if (is_null($this->user) || !$this->user->can('user.update')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any users !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Create New User
|
|
||||||
$user = User::find($id);
|
|
||||||
|
|
||||||
// Validation Data
|
|
||||||
if ($request->password !== '') {
|
|
||||||
$validated = $request->validate([
|
|
||||||
'name' => 'required|max:50',
|
|
||||||
'email' => 'required|max:100|email|unique:users,email,' . $id,
|
|
||||||
'password' => 'nullable|min:6|confirmed'
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
$validated = $request->validate([
|
|
||||||
'name' => 'required|max:50',
|
|
||||||
'email' => 'required|max:100|email|unique:users,email,' . $id
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
$user->name = $request->name;
|
|
||||||
$user->email = $request->email;
|
|
||||||
$user->directorat_id = $request->directorat_id;
|
|
||||||
$user->sub_directorat_id = $request->sub_directorat_id;
|
|
||||||
|
|
||||||
if ($request->password) {
|
|
||||||
$user->password = Hash::make($request->password);
|
|
||||||
}
|
|
||||||
|
|
||||||
$user->save();
|
|
||||||
|
|
||||||
$user->roles()->detach();
|
|
||||||
if ($request->roles) {
|
|
||||||
$user->assignRole($request->roles);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'success',
|
|
||||||
'message' => 'User Updated Successfully'
|
|
||||||
]);
|
|
||||||
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'error',
|
|
||||||
'message' => $e->getMessage()
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function destroy(User $user)
|
|
||||||
{
|
|
||||||
/*if (is_null($this->user) || !$this->user->can('user.delete')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to delete any users !');
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$user->delete();
|
|
||||||
|
|
||||||
echo json_encode([
|
|
||||||
'status' => 'success',
|
|
||||||
'message' => 'User Deleted Successfully'
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -39,7 +39,7 @@ class Kernel extends HttpKernel
|
|||||||
],
|
],
|
||||||
|
|
||||||
'api' => [
|
'api' => [
|
||||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||||
'throttle:api',
|
'throttle:api',
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
],
|
],
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests\Auth;
|
|
||||||
|
|
||||||
use Illuminate\Auth\Events\Lockout;
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\RateLimiter;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Illuminate\Validation\ValidationException;
|
|
||||||
|
|
||||||
class LoginRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'email' => ['required', 'string', 'email'],
|
|
||||||
'password' => ['required', 'string'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attempt to authenticate the request's credentials.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
|
||||||
*/
|
|
||||||
public function authenticate()
|
|
||||||
{
|
|
||||||
$this->ensureIsNotRateLimited();
|
|
||||||
|
|
||||||
if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
|
|
||||||
RateLimiter::hit($this->throttleKey());
|
|
||||||
|
|
||||||
throw ValidationException::withMessages([
|
|
||||||
'email' => trans('auth.failed'),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
RateLimiter::clear($this->throttleKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ensure the login request is not rate limited.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
|
||||||
*/
|
|
||||||
public function ensureIsNotRateLimited()
|
|
||||||
{
|
|
||||||
if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
event(new Lockout($this));
|
|
||||||
|
|
||||||
$seconds = RateLimiter::availableIn($this->throttleKey());
|
|
||||||
|
|
||||||
throw ValidationException::withMessages([
|
|
||||||
'email' => trans('auth.throttle', [
|
|
||||||
'seconds' => $seconds,
|
|
||||||
'minutes' => ceil($seconds / 60),
|
|
||||||
]),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the rate limiting throttle key for the request.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function throttleKey()
|
|
||||||
{
|
|
||||||
return Str::transliterate(Str::lower($this->input('email')).'|'.$this->ip());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreDirectoratRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:directorats,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('directorat.index')->with('error', 'Directorat created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreDocumentRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
: bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
: array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|unique:documents,kode',
|
|
||||||
'directorat_id' => 'required|integer|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|integer|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|integer|exists:jobs,id',
|
|
||||||
'sub_job_id' => 'required|integer|exists:sub_jobs,id',
|
|
||||||
'sub_sub_job_id' => 'required|integer|exists:sub_sub_jobs,id',
|
|
||||||
'special_code_id' => 'nullable|integer|exists:special_codes,id',
|
|
||||||
'no_urut' => 'nullable|integer|min:1|max:999',
|
|
||||||
'sequence' => 'nullable|integer|min:1|max:999',
|
|
||||||
'status' => 'nullable|integer',
|
|
||||||
'keterangan' => 'nullable|string|max:255',
|
|
||||||
'jenis_dokumen' => 'nullable|string|max:255',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator)
|
|
||||||
: void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if ($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash($value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('document.index')->with('error', 'Document created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreDocumentTypeRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:document_types,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('document-type.index')->with('error', 'Document Type created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:jobs,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('job.index')->with('error', 'Job created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreSpecialCodeRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:special_codes,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('special-code.index')->with('error', 'Special Code created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreSubDirectoratRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_directorats',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('sub-directorat.index')->with('error', 'Sub Directorat created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreSubJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|exists:jobs,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_jobs,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('job.index')->with('error', 'Sub Job created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Contracts\Validation\Rule;
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class StoreSubSubJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|exists:jobs,id',
|
|
||||||
'sub_job_id' => 'required|exists:sub_jobs,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,kode',
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if ($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash($value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('job.index')->with('error', 'Sub Sub Job created failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateDirectoratRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:directorats,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('directorat.index')->with('error', 'Directorat updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateDocumentRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize()
|
|
||||||
: bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
: array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|unique:documents,kode,' . $this->id,
|
|
||||||
'directorat_id' => 'required|integer|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|integer|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|integer|exists:jobs,id',
|
|
||||||
'sub_job_id' => 'required|integer|exists:sub_jobs,id',
|
|
||||||
'sub_sub_job_id' => 'required|integer|exists:sub_sub_jobs,id',
|
|
||||||
'special_code_id' => 'nullable|integer|exists:special_codes,id',
|
|
||||||
'no_urut' => 'nullable|integer|min:1|max:999',
|
|
||||||
'sequence' => 'nullable|integer|min:1|max:999',
|
|
||||||
'status' => 'nullable|integer',
|
|
||||||
'keterangan' => 'nullable|string|max:255',
|
|
||||||
'jenis_dokumen' => 'nullable|string|max:255',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator)
|
|
||||||
: void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if ($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash($value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('document.index')->with('error', 'Document updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateDocumentTypeRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:document_types,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('document-type.index')->with('error', 'Document Type updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:jobs,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('jobs.index')->with('error', 'Job updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateSpecialCodeRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:special_codes,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('special-code.index')->with('error', 'Special Code updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateSubDirectoratRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_directorats,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('sub-directorat.index')->with('error', 'Sub Directorat updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateSubJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|exists:jobs,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_jobs,kode,'.$this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash( $value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('jobs.index')->with('error', 'Sub Job updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Contracts\Validation\Rule;
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Validator;
|
|
||||||
|
|
||||||
class UpdateSubSubJobRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*/
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, Rule|array|string>
|
|
||||||
*/
|
|
||||||
public function rules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'directorat_id' => 'required|exists:directorats,id',
|
|
||||||
'sub_directorat_id' => 'required|exists:sub_directorats,id',
|
|
||||||
'job_id' => 'required|exists:jobs,id',
|
|
||||||
'sub_job_id' => 'required|exists:sub_jobs,id',
|
|
||||||
'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,kode,' . $this->id,
|
|
||||||
'name' => 'required|string|max:50'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the validator instance.
|
|
||||||
*/
|
|
||||||
public function withValidator(Validator $validator): void
|
|
||||||
{
|
|
||||||
$validator->after(function (Validator $validator) {
|
|
||||||
if ($validator->errors()->any()) {
|
|
||||||
$error = json_decode($validator->errors()->toJson(), true);
|
|
||||||
foreach ($error as $key => $value) {
|
|
||||||
flash($value[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('jobs.index')->with('error', 'Sub Sub Job updated failed.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class Directorat extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes, Userstamps;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subDirectorat()
|
|
||||||
{
|
|
||||||
return $this->hasMany(SubDirectorat::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class Document extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes, Userstamps;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'directorat_id',
|
|
||||||
'sub_directorat_id',
|
|
||||||
'job_id',
|
|
||||||
'sub_job_id',
|
|
||||||
'sub_sub_job_id',
|
|
||||||
'special_code_id',
|
|
||||||
'no_urut',
|
|
||||||
'kode',
|
|
||||||
'sequence',
|
|
||||||
'jenis_dokumen'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Directorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sub_directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubDirectorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function job()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Job::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sub_job()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubJob::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sub_sub_job()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubSubJob::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function special_code()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SpecialCode::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function document_details()
|
|
||||||
{
|
|
||||||
return $this->hasMany(DocumentDetail::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class DocumentDetail extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes, Userstamps;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'document_id',
|
|
||||||
'document_type_id',
|
|
||||||
|
|
||||||
'nama_nasabah',
|
|
||||||
'no_rekening',
|
|
||||||
'no_cif',
|
|
||||||
'group',
|
|
||||||
'group',
|
|
||||||
|
|
||||||
'tanggal_upload',
|
|
||||||
'tanggal_dokumen',
|
|
||||||
'nomor_dokumen',
|
|
||||||
'perihal',
|
|
||||||
'kode_cabang',
|
|
||||||
'jumlah_halaman',
|
|
||||||
'custom_field_1',
|
|
||||||
'custom_field_2',
|
|
||||||
'custom_field_3',
|
|
||||||
'custom_field_4'
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class DocumentType extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes, Userstamps;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
|
|
||||||
class Job extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'directorat_id',
|
|
||||||
'sub_directorat_id',
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('system');
|
|
||||||
}
|
|
||||||
public function directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Directorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subDirectorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubDirectorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subJob()
|
|
||||||
{
|
|
||||||
return $this->hasMany(SubJob::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Spatie\Permission\Models\Permission as SpatiePermission;
|
|
||||||
|
|
||||||
class Permission extends SpatiePermission
|
|
||||||
{
|
|
||||||
use LogsActivity;
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function group()
|
|
||||||
{
|
|
||||||
return $this->hasOne(PermissionGroup::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Spatie\Permission\Models\Role;
|
|
||||||
|
|
||||||
class PermissionGroup extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function permission(){
|
|
||||||
return $this->hasMany(Permission::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function roles($group){
|
|
||||||
$permission = Permission::where('permission_group_id', $group->id)->first();
|
|
||||||
|
|
||||||
$data = [];
|
|
||||||
|
|
||||||
$roles = Role::all();
|
|
||||||
|
|
||||||
foreach($roles as $role){
|
|
||||||
if($role->hasPermissionTo($permission->name)){
|
|
||||||
array_push($data,$role);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getpermissionsByGroupId($id)
|
|
||||||
{
|
|
||||||
$permissions = DB::table('permissions')
|
|
||||||
->select('name', 'id')
|
|
||||||
->where('permission_group_id', $id)
|
|
||||||
->get();
|
|
||||||
return $permissions;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class SpecialCode extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes, Userstamps;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('master data');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
|
|
||||||
class SubDirectorat extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'directorat_id',
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('system');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Directorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subJobs()
|
|
||||||
{
|
|
||||||
return $this->hasMany(SubJob::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function jobs()
|
|
||||||
{
|
|
||||||
return $this->hasManyThrough(Job::class, SubJob::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
|
|
||||||
class SubJob extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'directorat_id',
|
|
||||||
'sub_directorat_id',
|
|
||||||
'job_id',
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('system');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Directorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subDirectorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubDirectorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function job()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Job::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subSubJob()
|
|
||||||
{
|
|
||||||
return $this->hasMany(SubSubJob::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
||||||
|
|
||||||
class SubSubJob extends Model
|
|
||||||
{
|
|
||||||
use LogsActivity, HasFactory, SoftDeletes;
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'directorat_id',
|
|
||||||
'sub_directorat_id',
|
|
||||||
'job_id',
|
|
||||||
'sub_job_id',
|
|
||||||
'kode',
|
|
||||||
'name'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getActivitylogOptions(): LogOptions
|
|
||||||
{
|
|
||||||
return LogOptions::defaults()->logAll()
|
|
||||||
->useLogName('system');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function directorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Directorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subDirectorat()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubDirectorat::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function job()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(Job::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subJob()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(SubJob::class);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
|
||||||
use Illuminate\Notifications\Notifiable;
|
|
||||||
use Laravel\Sanctum\HasApiTokens;
|
|
||||||
use Spatie\Permission\Traits\HasRoles;
|
|
||||||
use Wildside\Userstamps\Userstamps;
|
|
||||||
|
|
||||||
class User extends Authenticatable
|
|
||||||
{
|
|
||||||
use HasApiTokens, HasFactory, Notifiable, Userstamps;
|
|
||||||
use HasRoles;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that are mass assignable.
|
|
||||||
*
|
|
||||||
* @var array<int, string>
|
|
||||||
*/
|
|
||||||
protected $fillable = [
|
|
||||||
'name',
|
|
||||||
'email',
|
|
||||||
'password',
|
|
||||||
'directorat_id',
|
|
||||||
'sub_directorat_id',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that should be hidden for serialization.
|
|
||||||
*
|
|
||||||
* @var array<int, string>
|
|
||||||
*/
|
|
||||||
protected $hidden = [
|
|
||||||
'password',
|
|
||||||
'remember_token',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that should be cast.
|
|
||||||
*
|
|
||||||
* @var array<string, string>
|
|
||||||
*/
|
|
||||||
protected $casts = [
|
|
||||||
'email_verified_at' => 'datetime',
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,28 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
// use Illuminate\Support\Facades\Gate;
|
// use Illuminate\Support\Facades\Gate;
|
||||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||||
|
|
||||||
class AuthServiceProvider extends ServiceProvider
|
class AuthServiceProvider extends ServiceProvider
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The model to policy mappings for the application.
|
|
||||||
*
|
|
||||||
* @var array<class-string, class-string>
|
|
||||||
*/
|
|
||||||
protected $policies = [
|
|
||||||
// 'App\Models\Model' => 'App\Policies\ModelPolicy',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register any authentication / authorization services.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function boot()
|
|
||||||
{
|
{
|
||||||
//
|
/**
|
||||||
|
* The model to policy mappings for the application.
|
||||||
|
*
|
||||||
|
* @var array<class-string, class-string>
|
||||||
|
*/
|
||||||
|
protected $policies = [// 'App\Models\Model' => 'App\Policies\ModelPolicy',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register any authentication / authorization services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -2,19 +2,32 @@
|
|||||||
"name": "laravel/laravel",
|
"name": "laravel/laravel",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"description": "The Laravel Framework.",
|
"description": "The Laravel Framework.",
|
||||||
"keywords": ["framework", "laravel"],
|
"keywords": [
|
||||||
|
"framework",
|
||||||
|
"laravel"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.0.2",
|
"php": "^8.0.2",
|
||||||
"anlutro/l4-settings": "^1.3",
|
"anlutro/l4-settings": "^1.3",
|
||||||
|
"dompdf/dompdf": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^7.2",
|
"guzzlehttp/guzzle": "^7.2",
|
||||||
"haruncpi/laravel-id-generator": "^1.1",
|
"haruncpi/laravel-id-generator": "^1.1",
|
||||||
"jackiedo/log-reader": "2.*",
|
"jackiedo/log-reader": "2.*",
|
||||||
|
"joshbrw/laravel-module-installer": "^2.0",
|
||||||
"laracasts/flash": "^3.2",
|
"laracasts/flash": "^3.2",
|
||||||
"laravel/framework": "^10.0",
|
"laravel/framework": "^10.0",
|
||||||
"laravel/sanctum": "^3.0",
|
"laravel/octane": "^1.5",
|
||||||
|
"laravel/sanctum": "^3.2",
|
||||||
"laravel/tinker": "^2.7",
|
"laravel/tinker": "^2.7",
|
||||||
"laravelcollective/html": "^6.4",
|
"laravelcollective/html": "^6.4",
|
||||||
|
"laravolt/avatar": "^5.0",
|
||||||
|
"nwidart/laravel-modules": "^10.0",
|
||||||
|
"putrakuningan/approval-module": "dev-master",
|
||||||
|
"putrakuningan/cetaklabel-module": "dev-_temp",
|
||||||
|
"putrakuningan/logs-module": "dev-master",
|
||||||
|
"putrakuningan/usermanager-module": "dev-master",
|
||||||
|
"simplesoftwareio/simple-qrcode": "^4.2",
|
||||||
"spatie/laravel-activitylog": "^4.7",
|
"spatie/laravel-activitylog": "^4.7",
|
||||||
"spatie/laravel-permission": "^5.10",
|
"spatie/laravel-permission": "^5.10",
|
||||||
"wildside/userstamps": "^2.3",
|
"wildside/userstamps": "^2.3",
|
||||||
@ -40,7 +53,8 @@
|
|||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Tests\\": "tests/"
|
"Tests\\": "tests/",
|
||||||
|
"Modules\\": "Modules/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -68,9 +82,32 @@
|
|||||||
"preferred-install": "dist",
|
"preferred-install": "dist",
|
||||||
"sort-packages": true,
|
"sort-packages": true,
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
"pestphp/pest-plugin": true
|
"pestphp/pest-plugin": true,
|
||||||
|
"joshbrw/laravel-module-installer": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"prefer-stable": true
|
"prefer-stable": true,
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"name": "putrakuningan/logs-module",
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://git.putrakuningan.com/putrakuningan/Logs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "putrakuningan/usermanager-module",
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://git.putrakuningan.com/putrakuningan/Usermanager"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "putrakuningan/cetaklabel-module",
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://git.putrakuningan.com/putrakuningan/Cetaklabel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "putrakuningan/approval-module",
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://git.putrakuningan.com/putrakuningan/Approval"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
9653
composer.lock
generated
9653
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -82,7 +82,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'locale' => 'en',
|
'locale' => 'id',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -156,49 +156,49 @@ return [
|
|||||||
|
|
||||||
'providers' => [
|
'providers' => [
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Laravel Framework Service Providers...
|
* Laravel Framework Service Providers...
|
||||||
*/
|
*/
|
||||||
Illuminate\Auth\AuthServiceProvider::class,
|
Illuminate\Auth\AuthServiceProvider::class,
|
||||||
Illuminate\Broadcasting\BroadcastServiceProvider::class,
|
Illuminate\Broadcasting\BroadcastServiceProvider::class,
|
||||||
Illuminate\Bus\BusServiceProvider::class,
|
Illuminate\Bus\BusServiceProvider::class,
|
||||||
Illuminate\Cache\CacheServiceProvider::class,
|
Illuminate\Cache\CacheServiceProvider::class,
|
||||||
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
|
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
|
||||||
Illuminate\Cookie\CookieServiceProvider::class,
|
Illuminate\Cookie\CookieServiceProvider::class,
|
||||||
Illuminate\Database\DatabaseServiceProvider::class,
|
Illuminate\Database\DatabaseServiceProvider::class,
|
||||||
Illuminate\Encryption\EncryptionServiceProvider::class,
|
Illuminate\Encryption\EncryptionServiceProvider::class,
|
||||||
Illuminate\Filesystem\FilesystemServiceProvider::class,
|
Illuminate\Filesystem\FilesystemServiceProvider::class,
|
||||||
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
|
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
|
||||||
Illuminate\Hashing\HashServiceProvider::class,
|
Illuminate\Hashing\HashServiceProvider::class,
|
||||||
Illuminate\Mail\MailServiceProvider::class,
|
Illuminate\Mail\MailServiceProvider::class,
|
||||||
Illuminate\Notifications\NotificationServiceProvider::class,
|
Illuminate\Notifications\NotificationServiceProvider::class,
|
||||||
Illuminate\Pagination\PaginationServiceProvider::class,
|
Illuminate\Pagination\PaginationServiceProvider::class,
|
||||||
Illuminate\Pipeline\PipelineServiceProvider::class,
|
Illuminate\Pipeline\PipelineServiceProvider::class,
|
||||||
Illuminate\Queue\QueueServiceProvider::class,
|
Illuminate\Queue\QueueServiceProvider::class,
|
||||||
Illuminate\Redis\RedisServiceProvider::class,
|
Illuminate\Redis\RedisServiceProvider::class,
|
||||||
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
|
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
|
||||||
Illuminate\Session\SessionServiceProvider::class,
|
Illuminate\Session\SessionServiceProvider::class,
|
||||||
Illuminate\Translation\TranslationServiceProvider::class,
|
Illuminate\Translation\TranslationServiceProvider::class,
|
||||||
Illuminate\Validation\ValidationServiceProvider::class,
|
Illuminate\Validation\ValidationServiceProvider::class,
|
||||||
Illuminate\View\ViewServiceProvider::class,
|
Illuminate\View\ViewServiceProvider::class,
|
||||||
/*
|
/*
|
||||||
* Package Service Providers...
|
* Package Service Providers...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Application Service Providers...
|
* Application Service Providers...
|
||||||
*/
|
*/
|
||||||
App\Providers\HelperServiceProvider::class,
|
App\Providers\HelperServiceProvider::class,
|
||||||
App\Providers\AppServiceProvider::class,
|
App\Providers\AppServiceProvider::class,
|
||||||
App\Providers\AuthServiceProvider::class,
|
\App\Providers\AuthServiceProvider::class,
|
||||||
// App\Providers\BroadcastServiceProvider::class,
|
// App\Providers\BroadcastServiceProvider::class,
|
||||||
App\Providers\EventServiceProvider::class,
|
App\Providers\EventServiceProvider::class,
|
||||||
App\Providers\RouteServiceProvider::class,
|
App\Providers\RouteServiceProvider::class,
|
||||||
|
|
||||||
Yajra\DataTables\DataTablesServiceProvider::class,
|
Yajra\DataTables\DataTablesServiceProvider::class,
|
||||||
Jackiedo\LogReader\LogReaderServiceProvider::class,
|
Jackiedo\LogReader\LogReaderServiceProvider::class,
|
||||||
|
|
||||||
Spatie\Permission\PermissionServiceProvider::class,
|
Spatie\Permission\PermissionServiceProvider::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -61,8 +61,8 @@ return [
|
|||||||
|
|
||||||
'providers' => [
|
'providers' => [
|
||||||
'users' => [
|
'users' => [
|
||||||
'driver' => 'eloquent',
|
'driver' => 'eloquent',
|
||||||
'model' => App\Models\User::class,
|
'model' => \Modules\Usermanager\Entities\User::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
// 'users' => [
|
// 'users' => [
|
||||||
|
277
config/modules.php
Normal file
277
config/modules.php
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Nwidart\Modules\Activators\FileActivator;
|
||||||
|
use Nwidart\Modules\Commands;
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Module Namespace
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Default module namespace.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'namespace' => 'Modules',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Module Stubs
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Default module stubs.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'stubs' => [
|
||||||
|
'enabled' => false,
|
||||||
|
'path' => base_path('vendor/nwidart/laravel-modules/src/Commands/stubs'),
|
||||||
|
'files' => [
|
||||||
|
'routes/web' => 'Routes/web.php',
|
||||||
|
'routes/api' => 'Routes/api.php',
|
||||||
|
'views/index' => 'Resources/views/index.blade.php',
|
||||||
|
'views/master' => 'Resources/views/layouts/master.blade.php',
|
||||||
|
'scaffold/config' => 'Config/config.php',
|
||||||
|
'composer' => 'composer.json',
|
||||||
|
'assets/js/app' => 'Resources/assets/js/app.js',
|
||||||
|
'assets/sass/app' => 'Resources/assets/sass/app.scss',
|
||||||
|
'vite' => 'vite.config.js',
|
||||||
|
'package' => 'package.json',
|
||||||
|
],
|
||||||
|
'replacements' => [
|
||||||
|
'routes/web' => ['LOWER_NAME', 'STUDLY_NAME'],
|
||||||
|
'routes/api' => ['LOWER_NAME'],
|
||||||
|
'vite' => ['LOWER_NAME'],
|
||||||
|
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'],
|
||||||
|
'views/index' => ['LOWER_NAME'],
|
||||||
|
'views/master' => ['LOWER_NAME', 'STUDLY_NAME'],
|
||||||
|
'scaffold/config' => ['STUDLY_NAME'],
|
||||||
|
'composer' => [
|
||||||
|
'LOWER_NAME',
|
||||||
|
'STUDLY_NAME',
|
||||||
|
'VENDOR',
|
||||||
|
'AUTHOR_NAME',
|
||||||
|
'AUTHOR_EMAIL',
|
||||||
|
'MODULE_NAMESPACE',
|
||||||
|
'PROVIDER_NAMESPACE',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'gitkeep' => true,
|
||||||
|
],
|
||||||
|
'paths' => [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Modules path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This path used for save the generated module. This path also will be added
|
||||||
|
| automatically to list of scanned folders.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'modules' => base_path('Modules'),
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Modules assets path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may update the modules assets path.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'assets' => public_path('modules'),
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The migrations path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Where you run 'module:publish-migration' command, where do you publish the
|
||||||
|
| the migration files?
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'migration' => base_path('database/migrations'),
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Generator path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Customise the paths where the folders will be generated.
|
||||||
|
| Set the generate key to false to not generate that folder
|
||||||
|
*/
|
||||||
|
'generator' => [
|
||||||
|
'config' => ['path' => 'Config', 'generate' => true],
|
||||||
|
'command' => ['path' => 'Console', 'generate' => true],
|
||||||
|
'migration' => ['path' => 'Database/Migrations', 'generate' => true],
|
||||||
|
'seeder' => ['path' => 'Database/Seeders', 'generate' => true],
|
||||||
|
'factory' => ['path' => 'Database/factories', 'generate' => true],
|
||||||
|
'model' => ['path' => 'Entities', 'generate' => true],
|
||||||
|
'routes' => ['path' => 'Routes', 'generate' => true],
|
||||||
|
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
|
||||||
|
'filter' => ['path' => 'Http/Middleware', 'generate' => true],
|
||||||
|
'request' => ['path' => 'Http/Requests', 'generate' => true],
|
||||||
|
'provider' => ['path' => 'Providers', 'generate' => true],
|
||||||
|
'assets' => ['path' => 'Resources/assets', 'generate' => true],
|
||||||
|
'lang' => ['path' => 'Resources/lang', 'generate' => true],
|
||||||
|
'views' => ['path' => 'Resources/views', 'generate' => true],
|
||||||
|
'test' => ['path' => 'Tests/Unit', 'generate' => true],
|
||||||
|
'test-feature' => ['path' => 'Tests/Feature', 'generate' => true],
|
||||||
|
'repository' => ['path' => 'Repositories', 'generate' => false],
|
||||||
|
'event' => ['path' => 'Events', 'generate' => false],
|
||||||
|
'listener' => ['path' => 'Listeners', 'generate' => false],
|
||||||
|
'policies' => ['path' => 'Policies', 'generate' => false],
|
||||||
|
'rules' => ['path' => 'Rules', 'generate' => false],
|
||||||
|
'jobs' => ['path' => 'Jobs', 'generate' => false],
|
||||||
|
'emails' => ['path' => 'Emails', 'generate' => false],
|
||||||
|
'notifications' => ['path' => 'Notifications', 'generate' => false],
|
||||||
|
'resource' => ['path' => 'Transformers', 'generate' => false],
|
||||||
|
'component-view' => ['path' => 'Resources/views/components', 'generate' => false],
|
||||||
|
'component-class' => ['path' => 'View/Components', 'generate' => false],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Package commands
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you can define which commands will be visible and used in your
|
||||||
|
| application. If for example you don't use some of the commands provided
|
||||||
|
| you can simply comment them out.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'commands' => [
|
||||||
|
Commands\CommandMakeCommand::class,
|
||||||
|
Commands\ComponentClassMakeCommand::class,
|
||||||
|
Commands\ComponentViewMakeCommand::class,
|
||||||
|
Commands\ControllerMakeCommand::class,
|
||||||
|
Commands\DisableCommand::class,
|
||||||
|
Commands\DumpCommand::class,
|
||||||
|
Commands\EnableCommand::class,
|
||||||
|
Commands\EventMakeCommand::class,
|
||||||
|
Commands\JobMakeCommand::class,
|
||||||
|
Commands\ListenerMakeCommand::class,
|
||||||
|
Commands\MailMakeCommand::class,
|
||||||
|
Commands\MiddlewareMakeCommand::class,
|
||||||
|
Commands\NotificationMakeCommand::class,
|
||||||
|
Commands\ProviderMakeCommand::class,
|
||||||
|
Commands\RouteProviderMakeCommand::class,
|
||||||
|
Commands\InstallCommand::class,
|
||||||
|
Commands\ListCommand::class,
|
||||||
|
Commands\ModuleDeleteCommand::class,
|
||||||
|
Commands\ModuleMakeCommand::class,
|
||||||
|
Commands\FactoryMakeCommand::class,
|
||||||
|
Commands\PolicyMakeCommand::class,
|
||||||
|
Commands\RequestMakeCommand::class,
|
||||||
|
Commands\RuleMakeCommand::class,
|
||||||
|
Commands\MigrateCommand::class,
|
||||||
|
Commands\MigrateFreshCommand::class,
|
||||||
|
Commands\MigrateRefreshCommand::class,
|
||||||
|
Commands\MigrateResetCommand::class,
|
||||||
|
Commands\MigrateRollbackCommand::class,
|
||||||
|
Commands\MigrateStatusCommand::class,
|
||||||
|
Commands\MigrationMakeCommand::class,
|
||||||
|
Commands\ModelMakeCommand::class,
|
||||||
|
Commands\PublishCommand::class,
|
||||||
|
Commands\PublishConfigurationCommand::class,
|
||||||
|
Commands\PublishMigrationCommand::class,
|
||||||
|
Commands\PublishTranslationCommand::class,
|
||||||
|
Commands\SeedCommand::class,
|
||||||
|
Commands\SeedMakeCommand::class,
|
||||||
|
Commands\SetupCommand::class,
|
||||||
|
Commands\UnUseCommand::class,
|
||||||
|
Commands\UpdateCommand::class,
|
||||||
|
Commands\UseCommand::class,
|
||||||
|
Commands\ResourceMakeCommand::class,
|
||||||
|
Commands\TestMakeCommand::class,
|
||||||
|
Commands\LaravelModulesV6Migrator::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Scan Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you define which folder will be scanned. By default will scan vendor
|
||||||
|
| directory. This is useful if you host the package in packagist website.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'scan' => [
|
||||||
|
'enabled' => false,
|
||||||
|
'paths' => [
|
||||||
|
base_path('vendor/*/*'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Composer File Template
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here is the config for composer.json file, generated by this package
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'composer' => [
|
||||||
|
'vendor' => 'putrakuningan',
|
||||||
|
'author' => [
|
||||||
|
'name' => 'Daeng Deni Mardaeni',
|
||||||
|
'email' => 'ddeni05@gmail.com',
|
||||||
|
],
|
||||||
|
'composer-output' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Caching
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here is the config for setting up caching feature.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'cache' => [
|
||||||
|
'enabled' => false,
|
||||||
|
'driver' => 'file',
|
||||||
|
'key' => 'laravel-modules',
|
||||||
|
'lifetime' => 60,
|
||||||
|
],
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Choose what laravel-modules will register as custom namespaces.
|
||||||
|
| Setting one to false will require you to register that part
|
||||||
|
| in your own Service Provider class.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
'register' => [
|
||||||
|
'translations' => true,
|
||||||
|
/**
|
||||||
|
* load files on boot or register method
|
||||||
|
*
|
||||||
|
* Note: boot not compatible with asgardcms
|
||||||
|
*
|
||||||
|
* @example boot|register
|
||||||
|
*/
|
||||||
|
'files' => 'register',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Activators
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| You can define new types of activators here, file, database etc. The only
|
||||||
|
| required parameter is 'class'.
|
||||||
|
| The file activator will store the activation status in storage/installed_modules
|
||||||
|
*/
|
||||||
|
'activators' => [
|
||||||
|
'file' => [
|
||||||
|
'class' => FileActivator::class,
|
||||||
|
'statuses-file' => base_path('modules_statuses.json'),
|
||||||
|
'cache-key' => 'activator.installed',
|
||||||
|
'cache-lifetime' => 604800,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'activator' => 'file',
|
||||||
|
];
|
228
config/octane.php
Normal file
228
config/octane.php
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Laravel\Octane\Contracts\OperationTerminated;
|
||||||
|
use Laravel\Octane\Events\RequestHandled;
|
||||||
|
use Laravel\Octane\Events\RequestReceived;
|
||||||
|
use Laravel\Octane\Events\RequestTerminated;
|
||||||
|
use Laravel\Octane\Events\TaskReceived;
|
||||||
|
use Laravel\Octane\Events\TaskTerminated;
|
||||||
|
use Laravel\Octane\Events\TickReceived;
|
||||||
|
use Laravel\Octane\Events\TickTerminated;
|
||||||
|
use Laravel\Octane\Events\WorkerErrorOccurred;
|
||||||
|
use Laravel\Octane\Events\WorkerStarting;
|
||||||
|
use Laravel\Octane\Events\WorkerStopping;
|
||||||
|
use Laravel\Octane\Listeners\CollectGarbage;
|
||||||
|
use Laravel\Octane\Listeners\DisconnectFromDatabases;
|
||||||
|
use Laravel\Octane\Listeners\EnsureUploadedFilesAreValid;
|
||||||
|
use Laravel\Octane\Listeners\EnsureUploadedFilesCanBeMoved;
|
||||||
|
use Laravel\Octane\Listeners\FlushTemporaryContainerInstances;
|
||||||
|
use Laravel\Octane\Listeners\FlushUploadedFiles;
|
||||||
|
use Laravel\Octane\Listeners\ReportException;
|
||||||
|
use Laravel\Octane\Listeners\StopWorkerIfNecessary;
|
||||||
|
use Laravel\Octane\Octane;
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Server
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This value determines the default "server" that will be used by Octane
|
||||||
|
| when starting, restarting, or stopping your server via the CLI. You
|
||||||
|
| are free to change this to the supported server of your choosing.
|
||||||
|
|
|
||||||
|
| Supported: "roadrunner", "swoole"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'server' => env('OCTANE_SERVER', 'roadrunner'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Force HTTPS
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When this configuration value is set to "true", Octane will inform the
|
||||||
|
| framework that all absolute links must be generated using the HTTPS
|
||||||
|
| protocol. Otherwise your links may be generated using plain HTTP.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'https' => env('OCTANE_HTTPS', false),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Listeners
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| All of the event listeners for Octane's events are defined below. These
|
||||||
|
| listeners are responsible for resetting your application's state for
|
||||||
|
| the next request. You may even add your own listeners to the list.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'listeners' => [
|
||||||
|
WorkerStarting::class => [
|
||||||
|
EnsureUploadedFilesAreValid::class,
|
||||||
|
EnsureUploadedFilesCanBeMoved::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
...Octane::prepareApplicationForNextRequest(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestHandled::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
RequestTerminated::class => [
|
||||||
|
// FlushUploadedFiles::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
TaskReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TaskTerminated::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TickReceived::class => [
|
||||||
|
...Octane::prepareApplicationForNextOperation(),
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
TickTerminated::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
OperationTerminated::class => [
|
||||||
|
FlushTemporaryContainerInstances::class,
|
||||||
|
// DisconnectFromDatabases::class,
|
||||||
|
// CollectGarbage::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
WorkerErrorOccurred::class => [
|
||||||
|
ReportException::class,
|
||||||
|
StopWorkerIfNecessary::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
WorkerStopping::class => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Warm / Flush Bindings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The bindings listed below will either be pre-warmed when a worker boots
|
||||||
|
| or they will be flushed before every new request. Flushing a binding
|
||||||
|
| will force the container to resolve that binding again when asked.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'warm' => [
|
||||||
|
...Octane::defaultServicesToWarm(),
|
||||||
|
],
|
||||||
|
|
||||||
|
'flush' => [
|
||||||
|
//
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Cache Table
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| While using Swoole, you may leverage the Octane cache, which is powered
|
||||||
|
| by a Swoole table. You may set the maximum number of rows as well as
|
||||||
|
| the number of bytes per row using the configuration options below.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'cache' => [
|
||||||
|
'rows' => 1000,
|
||||||
|
'bytes' => 10000,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Octane Swoole Tables
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| While using Swoole, you may define additional tables as required by the
|
||||||
|
| application. These tables can be used to store data that needs to be
|
||||||
|
| quickly accessed by other workers on the particular Swoole server.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'tables' => [
|
||||||
|
'example:1000' => [
|
||||||
|
'name' => 'string:1000',
|
||||||
|
'votes' => 'int',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| File Watching
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following list of files and directories will be watched when using
|
||||||
|
| the --watch option offered by Octane. If any of the directories and
|
||||||
|
| files are changed, Octane will automatically reload your workers.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'watch' => [
|
||||||
|
'app',
|
||||||
|
'bootstrap',
|
||||||
|
'config',
|
||||||
|
'database',
|
||||||
|
'public/**/*.php',
|
||||||
|
'resources/**/*.php',
|
||||||
|
'routes',
|
||||||
|
'composer.lock',
|
||||||
|
'.env',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Garbage Collection Threshold
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When executing long-lived PHP scripts such as Octane, memory can build
|
||||||
|
| up before being cleared by PHP. You can force Octane to run garbage
|
||||||
|
| collection if your application consumes this amount of megabytes.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'garbage' => 50,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Maximum Execution Time
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following setting configures the maximum execution time for requests
|
||||||
|
| being handled by Octane. You may set this value to 0 to indicate that
|
||||||
|
| there isn't a specific time limit on Octane request execution time.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'max_execution_time' => 30,
|
||||||
|
|
||||||
|
'swoole' => [
|
||||||
|
'options' => [
|
||||||
|
'log_file' => storage_path('logs/swoole_http.log'),
|
||||||
|
'package_max_length' => 10 * 1024 * 1024,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
@ -1,237 +1,310 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
use App\Core\Bootstrap\BootstrapAuth;
|
||||||
|
use App\Core\Bootstrap\BootstrapDefault;
|
||||||
|
use App\Core\Bootstrap\BootstrapSystem;
|
||||||
|
|
||||||
'KT_THEME_BOOTSTRAP' => [
|
return [
|
||||||
'default' => \App\Core\Bootstrap\BootstrapDefault::class,
|
|
||||||
'auth' => \App\Core\Bootstrap\BootstrapAuth::class,
|
|
||||||
'system' => \App\Core\Bootstrap\BootstrapSystem::class,
|
|
||||||
],
|
|
||||||
|
|
||||||
'KT_THEME' => 'metronic',
|
'KT_THEME_BOOTSTRAP' => [
|
||||||
|
'default' => BootstrapDefault::class,
|
||||||
|
'auth' => BootstrapAuth::class,
|
||||||
|
'system' => BootstrapSystem::class,
|
||||||
|
],
|
||||||
|
|
||||||
# Theme layout templates directory
|
'KT_THEME' => 'metronic',
|
||||||
|
|
||||||
'KT_THEME_LAYOUT_DIR' => 'layout',
|
# Theme layout templates directory
|
||||||
|
|
||||||
|
'KT_THEME_LAYOUT_DIR' => 'layout',
|
||||||
|
|
||||||
|
|
||||||
# Theme Mode
|
# Theme Mode
|
||||||
# Value: light | dark | system
|
# Value: light | dark | system
|
||||||
|
|
||||||
'KT_THEME_MODE_DEFAULT' => 'light',
|
'KT_THEME_MODE_DEFAULT' => 'light',
|
||||||
'KT_THEME_MODE_SWITCH_ENABLED' => true,
|
'KT_THEME_MODE_SWITCH_ENABLED' => true,
|
||||||
|
|
||||||
|
|
||||||
# Theme Direction
|
# Theme Direction
|
||||||
# Value: ltr | rtl
|
# Value: ltr | rtl
|
||||||
|
|
||||||
'KT_THEME_DIRECTION' => 'ltr',
|
'KT_THEME_DIRECTION' => 'ltr',
|
||||||
|
|
||||||
|
|
||||||
# Keenicons
|
# Keenicons
|
||||||
# Value: duotone | outline | bold
|
# Value: duotone | outline | bold
|
||||||
|
|
||||||
'KT_THEME_ICONS' => 'duotone',
|
'KT_THEME_ICONS' => 'duotone',
|
||||||
|
|
||||||
|
|
||||||
# Theme Assets
|
# Theme Assets
|
||||||
|
|
||||||
'KT_THEME_ASSETS' => [
|
'KT_THEME_ASSETS' => [
|
||||||
'favicon' => 'assets/media/logos/favicon.ico',
|
'favicon' => 'assets/media/logos/favicon.ico',
|
||||||
'fonts' => [
|
'fonts' => [
|
||||||
'https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700',
|
'https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700',
|
||||||
],
|
|
||||||
'global' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/global/plugins.bundle.css',
|
|
||||||
'assets/css/style.bundle.css',
|
|
||||||
],
|
],
|
||||||
'js' => [
|
'global' => [
|
||||||
'assets/plugins/global/plugins.bundle.js',
|
'css' => [
|
||||||
'assets/js/scripts.bundle.js',
|
'assets/plugins/global/plugins.bundle.css',
|
||||||
'assets/js/widgets.bundle.js',
|
'assets/css/style.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/global/plugins.bundle.js',
|
||||||
|
'assets/js/scripts.bundle.js',
|
||||||
|
'assets/js/widgets.bundle.js',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
# Theme Vendors
|
# Theme Vendors
|
||||||
|
|
||||||
'KT_THEME_VENDORS' => [
|
'KT_THEME_VENDORS' => [
|
||||||
'datatables' => [
|
'datatables' => [
|
||||||
'css' => [
|
'css' => [
|
||||||
'assets/plugins/custom/datatables/datatables.bundle.css',
|
'assets/plugins/custom/datatables/datatables.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/datatables/datatables.bundle.js',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
'js' => [
|
'formrepeater' => [
|
||||||
'assets/plugins/custom/datatables/datatables.bundle.js',
|
'js' => [
|
||||||
|
'assets/plugins/custom/formrepeater/formrepeater.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'fullcalendar' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/fullcalendar/fullcalendar.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/fullcalendar/fullcalendar.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'flotcharts' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/flotcharts/flotcharts.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'google-jsapi' => [
|
||||||
|
'js' => [
|
||||||
|
'//www.google.com/jsapi',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'tinymce' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/tinymce/tinymce.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'ckeditor-classic' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/ckeditor/ckeditor-classic.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'ckeditor-inline' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/ckeditor/ckeditor-inline.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'ckeditor-balloon' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/ckeditor/ckeditor-balloon.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'ckeditor-balloon-block' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'ckeditor-document' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/ckeditor/ckeditor-document.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'draggable' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/draggable/draggable.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'fslightbox' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/fslightbox/fslightbox.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'jkanban' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/jkanban/jkanban.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/jkanban/jkanban.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'typedjs' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/typedjs/typedjs.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'cookiealert' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/cookiealert/cookiealert.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/cookiealert/cookiealert.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'cropper' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/cropper/cropper.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/cropper/cropper.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'vis-timeline' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/vis-timeline/vis-timeline.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/vis-timeline/vis-timeline.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'jstree' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/jstree/jstree.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/jstree/jstree.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'prismjs' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/prismjs/prismjs.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/prismjs/prismjs.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'leaflet' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/leaflet/leaflet.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/leaflet/leaflet.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'amcharts' => [
|
||||||
|
'js' => [
|
||||||
|
'https://cdn.amcharts.com/lib/5/index.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/xy.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/percent.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/radar.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'amcharts-maps' => [
|
||||||
|
'js' => [
|
||||||
|
'https://cdn.amcharts.com/lib/5/index.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/map.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/geodata/worldLow.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/geodata/continentsLow.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/geodata/usaLow.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/geodata/worldTimeZonesLow.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/geodata/worldTimeZoneAreasLow.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'amcharts-stock' => [
|
||||||
|
'js' => [
|
||||||
|
'https://cdn.amcharts.com/lib/5/index.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/xy.js',
|
||||||
|
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'bootstrap-select' => [
|
||||||
|
'css' => [
|
||||||
|
'assets/plugins/custom/bootstrap-select/bootstrap-select.bundle.css',
|
||||||
|
],
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/bootstrap-select/bootstrap-select.bundle.js',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'chained-select' => [
|
||||||
|
'js' => [
|
||||||
|
'assets/plugins/custom/jquery-chained/jquery.chained.js',
|
||||||
|
'assets/plugins/custom/jquery-chained/jquery.chained.remote.js',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'formrepeater' => [
|
/*
|
||||||
'js' => [
|
|--------------------------------------------------------------------------
|
||||||
'assets/plugins/custom/formrepeater/formrepeater.bundle.js',
|
| Default Settings Store
|
||||||
],
|
|--------------------------------------------------------------------------
|
||||||
],
|
|
|
||||||
'fullcalendar' => [
|
| This option controls the default settings store that gets used while
|
||||||
'css' => [
|
| using this settings library.
|
||||||
'assets/plugins/custom/fullcalendar/fullcalendar.bundle.css',
|
|
|
||||||
],
|
| Supported: "json", "database"
|
||||||
'js' => [
|
|
|
||||||
'assets/plugins/custom/fullcalendar/fullcalendar.bundle.js',
|
*/
|
||||||
],
|
'store' => 'database',
|
||||||
],
|
|
||||||
'flotcharts' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/flotcharts/flotcharts.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'google-jsapi' => [
|
|
||||||
'js' => [
|
|
||||||
'//www.google.com/jsapi',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'tinymce' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/tinymce/tinymce.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'ckeditor-classic' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/ckeditor/ckeditor-classic.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'ckeditor-inline' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/ckeditor/ckeditor-inline.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'ckeditor-balloon' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/ckeditor/ckeditor-balloon.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'ckeditor-balloon-block' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'ckeditor-document' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/ckeditor/ckeditor-document.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'draggable' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/draggable/draggable.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'fslightbox' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/fslightbox/fslightbox.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'jkanban' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/jkanban/jkanban.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/jkanban/jkanban.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'typedjs' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/typedjs/typedjs.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'cookiealert' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/cookiealert/cookiealert.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/cookiealert/cookiealert.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'cropper' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/cropper/cropper.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/cropper/cropper.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'vis-timeline' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/vis-timeline/vis-timeline.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/vis-timeline/vis-timeline.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'jstree' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/jstree/jstree.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/jstree/jstree.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'prismjs' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/prismjs/prismjs.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/prismjs/prismjs.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'leaflet' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/leaflet/leaflet.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/leaflet/leaflet.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'amcharts' => [
|
|
||||||
'js' => [
|
|
||||||
'https://cdn.amcharts.com/lib/5/index.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/xy.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/percent.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/radar.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'amcharts-maps' => [
|
|
||||||
'js' => [
|
|
||||||
'https://cdn.amcharts.com/lib/5/index.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/map.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/geodata/worldLow.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/geodata/continentsLow.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/geodata/usaLow.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/geodata/worldTimeZonesLow.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/geodata/worldTimeZoneAreasLow.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'amcharts-stock' => [
|
|
||||||
'js' => [
|
|
||||||
'https://cdn.amcharts.com/lib/5/index.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/xy.js',
|
|
||||||
'https://cdn.amcharts.com/lib/5/themes/Animated.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'bootstrap-select' => [
|
|
||||||
'css' => [
|
|
||||||
'assets/plugins/custom/bootstrap-select/bootstrap-select.bundle.css',
|
|
||||||
],
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/bootstrap-select/bootstrap-select.bundle.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'chained-select' => [
|
|
||||||
'js' => [
|
|
||||||
'assets/plugins/custom/jquery-chained/jquery.chained.js',
|
|
||||||
'assets/plugins/custom/jquery-chained/jquery.chained.remote.js',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
];
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| JSON Store
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If the store is set to "json", settings are stored in the defined
|
||||||
|
| file path in JSON format. Use full path to file.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'path' => storage_path() . '/settings.json',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Database Store
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The settings are stored in the defined file path in JSON format.
|
||||||
|
| Use full path to JSON file.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
// If set to null, the default connection will be used.
|
||||||
|
'connection' => null,
|
||||||
|
// Name of the table used.
|
||||||
|
'table' => 'settings',
|
||||||
|
// If you want to use custom column names in database store you could
|
||||||
|
// set them in this configuration
|
||||||
|
'keyColumn' => 'key',
|
||||||
|
'valueColumn' => 'value',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If you want all setting calls to go through Laravel's cache system.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'enableCache' => false,
|
||||||
|
// Whether to reset the cache when changing a setting.
|
||||||
|
'forgetCacheByWrite' => true,
|
||||||
|
// TTL in seconds.
|
||||||
|
'cacheTtl' => 15,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Define all default settings that will be used before any settings are set,
|
||||||
|
| this avoids all settings being set to false to begin with and avoids
|
||||||
|
| hardcoding the same defaults in all 'Settings::get()' calls
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'defaults' => [
|
||||||
|
'foo' => 'bar',
|
||||||
|
]
|
||||||
|
|
||||||
|
];
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
begin
|
|
||||||
sys.dbms_job.submit(job => :job,
|
|
||||||
what => 'wof_admin.Proses_Hitung_Bunga(2);',
|
|
||||||
next_date => to_date('11-04-2023', 'dd-mm-yyyy'),
|
|
||||||
interval => 'trunc(sysdate)+1');
|
|
||||||
commit;
|
|
||||||
end;
|
|
||||||
/
|
|
@ -1,34 +0,0 @@
|
|||||||
INSERT INTO PRM_REKENING (NOMOR_REKENING, KD_DEBITUR, KD_CABANG, KD_PRODUK, KET_PRODUK, KD_MATA_UANG, TGL_BUKA,
|
|
||||||
LIMIT_REF, STATUS_REKENING, STATUS_DATA, FLAG_OTO, TGL_UPDATE)
|
|
||||||
SELECT ACCOUNT_NUMBER,
|
|
||||||
CASE
|
|
||||||
WHEN CUSTOMER_CODE IS NULL THEN
|
|
||||||
0
|
|
||||||
ELSE CUSTOMER_CODE
|
|
||||||
END AS KD_DEBITUR,
|
|
||||||
BRANCH_CODE,
|
|
||||||
a.PRODUCT_CODE,
|
|
||||||
PRODUCT_DESCRIPTION,
|
|
||||||
CURRENCY_CODE,
|
|
||||||
OPENING_DATE,
|
|
||||||
CASE
|
|
||||||
WHEN MINIMUM_BALANCE IS NULL THEN
|
|
||||||
0
|
|
||||||
ELSE minimum_balance
|
|
||||||
END AS LIMIT_REF,
|
|
||||||
CASE
|
|
||||||
|
|
||||||
WHEN INACTIVE_FLAG IS NULL THEN
|
|
||||||
'N'
|
|
||||||
ELSE 'Y'
|
|
||||||
END AS STATUS_REKENING,
|
|
||||||
CASE
|
|
||||||
WHEN INACTIVE_FLAG IS NULL THEN
|
|
||||||
'N'
|
|
||||||
ELSE 'Y'
|
|
||||||
END AS STATUS_DATA,
|
|
||||||
'1' AS FLAG_OTO,
|
|
||||||
CURRENT_dATE AS TGL_UPDATE
|
|
||||||
FROM T_aCCOUNT @t24dwh_96 a
|
|
||||||
INNER JOIN T_PRODUCT @T24DWH_96 b
|
|
||||||
ON a.product_code = b.product_code;
|
|
@ -1,40 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Database\Factories;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
|
|
||||||
*/
|
|
||||||
class UserFactory extends Factory
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Define the model's default state.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function definition()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'name' => fake()->name(),
|
|
||||||
'email' => fake()->unique()->safeEmail(),
|
|
||||||
'email_verified_at' => now(),
|
|
||||||
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
|
|
||||||
'remember_token' => Str::random(10),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicate that the model's email address should be unverified.
|
|
||||||
*
|
|
||||||
* @return static
|
|
||||||
*/
|
|
||||||
public function unverified()
|
|
||||||
{
|
|
||||||
return $this->state(fn (array $attributes) => [
|
|
||||||
'email_verified_at' => null,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('users', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignIdFor('App\Models\Directorat', 'directorat_id')->nullable();
|
|
||||||
$table->foreignIdFor('App\Models\SubDirectorat', 'sub_directorat_id')->nullable();
|
|
||||||
$table->string('name');
|
|
||||||
$table->string('email')->unique();
|
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
|
||||||
$table->string('password');
|
|
||||||
$table->rememberToken();
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('users');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('password_resets', function (Blueprint $table) {
|
|
||||||
$table->string('email')->index();
|
|
||||||
$table->string('token');
|
|
||||||
$table->timestamp('created_at')->nullable();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('password_resets');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('failed_jobs', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string('uuid')->unique();
|
|
||||||
$table->text('connection');
|
|
||||||
$table->text('queue');
|
|
||||||
$table->longText('payload');
|
|
||||||
$table->longText('exception');
|
|
||||||
$table->timestamp('failed_at')->useCurrent();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('failed_jobs');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,42 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('personal_access_tokens', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->morphs('tokenable');
|
|
||||||
$table->string('name');
|
|
||||||
$table->string('token', 64)->unique();
|
|
||||||
$table->text('abilities')->nullable();
|
|
||||||
$table->timestamp('last_used_at')->nullable();
|
|
||||||
$table->timestamp('expires_at')->nullable();
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('personal_access_tokens');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('directorats', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string('kode',2);
|
|
||||||
$table->string('name',50);
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('directorats');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,35 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('sub_directorats', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignId('directorat_id')->constrained('directorats')->onDelete('cascade');
|
|
||||||
$table->string('kode',2);
|
|
||||||
$table->string('name',50);
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('sub_directorats');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,36 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('jobs', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignId('directorat_id')->constrained('directorats')->onDelete('cascade');
|
|
||||||
$table->foreignId('sub_directorat_id')->constrained('sub_directorats')->onDelete('cascade');
|
|
||||||
$table->string('kode',2);
|
|
||||||
$table->string('name',50);
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('jobs');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('sub_jobs', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignId('directorat_id')->constrained('directorats')->onDelete('cascade');
|
|
||||||
$table->foreignId('sub_directorat_id')->constrained('sub_directorats')->onDelete('cascade');
|
|
||||||
$table->foreignId('job_id')->constrained('jobs')->onDelete('cascade');
|
|
||||||
$table->string('kode',2);
|
|
||||||
$table->string('name',50);
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('sub_jobs');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,31 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class CreateActivityLogTable extends Migration
|
|
||||||
{
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->create(config('activitylog.table_name'), function (Blueprint $table) {
|
|
||||||
$table->bigIncrements('id');
|
|
||||||
$table->string('log_name')->nullable();
|
|
||||||
$table->text('description');
|
|
||||||
$table->nullableMorphs('subject', 'subject');
|
|
||||||
$table->nullableMorphs('causer', 'causer');
|
|
||||||
$table->json('properties')->nullable();
|
|
||||||
$table->timestamps();
|
|
||||||
$table->index('log_name');
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->dropIfExists(config('activitylog.table_name'));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class AddEventColumnToActivityLogTable extends Migration
|
|
||||||
{
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
|
|
||||||
$table->string('event')->nullable()->after('subject_type');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
|
|
||||||
$table->dropColumn('event');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class AddBatchUuidColumnToActivityLogTable extends Migration
|
|
||||||
{
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
|
|
||||||
$table->uuid('batch_uuid')->nullable()->after('properties');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
|
|
||||||
$table->dropColumn('batch_uuid');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('sub_sub_jobs', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignId('sub_job_id')->constrained('sub_jobs')->onDelete('cascade');
|
|
||||||
$table->foreignId('job_id')->constrained('jobs')->onDelete('cascade');
|
|
||||||
$table->foreignId('sub_directorat_id')->constrained('sub_directorats')->onDelete('cascade');
|
|
||||||
$table->foreignId('directorat_id')->constrained('directorats')->onDelete('cascade');
|
|
||||||
$table->string('kode');
|
|
||||||
$table->string('name');
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('sub_sub_jobs');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,141 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Spatie\Permission\PermissionRegistrar;
|
|
||||||
|
|
||||||
class CreatePermissionTables extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
$tableNames = config('permission.table_names');
|
|
||||||
$columnNames = config('permission.column_names');
|
|
||||||
$teams = config('permission.teams');
|
|
||||||
|
|
||||||
if (empty($tableNames)) {
|
|
||||||
throw new \Exception('Error: config/permission.php not loaded. Run [php artisan config:clear] and try again.');
|
|
||||||
}
|
|
||||||
if ($teams && empty($columnNames['team_foreign_key'] ?? null)) {
|
|
||||||
throw new \Exception('Error: team_foreign_key on config/permission.php not loaded. Run [php artisan config:clear] and try again.');
|
|
||||||
}
|
|
||||||
|
|
||||||
Schema::create($tableNames['permissions'], function (Blueprint $table) {
|
|
||||||
$table->bigIncrements('id'); // permission id
|
|
||||||
$table->string('name'); // For MySQL 8.0 use string('name', 125);
|
|
||||||
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
|
|
||||||
$table->timestamps();
|
|
||||||
|
|
||||||
$table->unique(['name', 'guard_name']);
|
|
||||||
});
|
|
||||||
|
|
||||||
Schema::create($tableNames['roles'], function (Blueprint $table) use ($teams, $columnNames) {
|
|
||||||
$table->bigIncrements('id'); // role id
|
|
||||||
if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing
|
|
||||||
$table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable();
|
|
||||||
$table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index');
|
|
||||||
}
|
|
||||||
$table->string('name'); // For MySQL 8.0 use string('name', 125);
|
|
||||||
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
|
|
||||||
$table->timestamps();
|
|
||||||
if ($teams || config('permission.testing')) {
|
|
||||||
$table->unique([$columnNames['team_foreign_key'], 'name', 'guard_name']);
|
|
||||||
} else {
|
|
||||||
$table->unique(['name', 'guard_name']);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) {
|
|
||||||
$table->unsignedBigInteger(PermissionRegistrar::$pivotPermission);
|
|
||||||
|
|
||||||
$table->string('model_type');
|
|
||||||
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
|
||||||
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index');
|
|
||||||
|
|
||||||
$table->foreign(PermissionRegistrar::$pivotPermission)
|
|
||||||
->references('id') // permission id
|
|
||||||
->on($tableNames['permissions'])
|
|
||||||
->onDelete('cascade');
|
|
||||||
if ($teams) {
|
|
||||||
$table->unsignedBigInteger($columnNames['team_foreign_key']);
|
|
||||||
$table->index($columnNames['team_foreign_key'], 'model_has_permissions_team_foreign_key_index');
|
|
||||||
|
|
||||||
$table->primary([$columnNames['team_foreign_key'], PermissionRegistrar::$pivotPermission, $columnNames['model_morph_key'], 'model_type'],
|
|
||||||
'model_has_permissions_permission_model_type_primary');
|
|
||||||
} else {
|
|
||||||
$table->primary([PermissionRegistrar::$pivotPermission, $columnNames['model_morph_key'], 'model_type'],
|
|
||||||
'model_has_permissions_permission_model_type_primary');
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) {
|
|
||||||
$table->unsignedBigInteger(PermissionRegistrar::$pivotRole);
|
|
||||||
|
|
||||||
$table->string('model_type');
|
|
||||||
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
|
||||||
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index');
|
|
||||||
|
|
||||||
$table->foreign(PermissionRegistrar::$pivotRole)
|
|
||||||
->references('id') // role id
|
|
||||||
->on($tableNames['roles'])
|
|
||||||
->onDelete('cascade');
|
|
||||||
if ($teams) {
|
|
||||||
$table->unsignedBigInteger($columnNames['team_foreign_key']);
|
|
||||||
$table->index($columnNames['team_foreign_key'], 'model_has_roles_team_foreign_key_index');
|
|
||||||
|
|
||||||
$table->primary([$columnNames['team_foreign_key'], PermissionRegistrar::$pivotRole, $columnNames['model_morph_key'], 'model_type'],
|
|
||||||
'model_has_roles_role_model_type_primary');
|
|
||||||
} else {
|
|
||||||
$table->primary([PermissionRegistrar::$pivotRole, $columnNames['model_morph_key'], 'model_type'],
|
|
||||||
'model_has_roles_role_model_type_primary');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) {
|
|
||||||
$table->unsignedBigInteger(PermissionRegistrar::$pivotPermission);
|
|
||||||
$table->unsignedBigInteger(PermissionRegistrar::$pivotRole);
|
|
||||||
|
|
||||||
$table->foreign(PermissionRegistrar::$pivotPermission)
|
|
||||||
->references('id') // permission id
|
|
||||||
->on($tableNames['permissions'])
|
|
||||||
->onDelete('cascade');
|
|
||||||
|
|
||||||
$table->foreign(PermissionRegistrar::$pivotRole)
|
|
||||||
->references('id') // role id
|
|
||||||
->on($tableNames['roles'])
|
|
||||||
->onDelete('cascade');
|
|
||||||
|
|
||||||
$table->primary([PermissionRegistrar::$pivotPermission, PermissionRegistrar::$pivotRole], 'role_has_permissions_permission_id_role_id_primary');
|
|
||||||
});
|
|
||||||
|
|
||||||
app('cache')
|
|
||||||
->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null)
|
|
||||||
->forget(config('permission.cache.key'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
$tableNames = config('permission.table_names');
|
|
||||||
|
|
||||||
if (empty($tableNames)) {
|
|
||||||
throw new \Exception('Error: config/permission.php not found and defaults could not be merged. Please publish the package configuration before proceeding, or drop the tables manually.');
|
|
||||||
}
|
|
||||||
|
|
||||||
Schema::drop($tableNames['role_has_permissions']);
|
|
||||||
Schema::drop($tableNames['model_has_roles']);
|
|
||||||
Schema::drop($tableNames['model_has_permissions']);
|
|
||||||
Schema::drop($tableNames['roles']);
|
|
||||||
Schema::drop($tableNames['permissions']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('permission_groups', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string('name');
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('permission_groups');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use App\Models\PermissionGroup;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::table('permissions', function($table) {
|
|
||||||
$table->foreignIdFor(PermissionGroup::class);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropForeignKey('permission_group_id');
|
|
||||||
Schema::dropColumn('permission_group_id');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('document_types', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string('kode', 2);
|
|
||||||
$table->string('name');
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('special_codes');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('special_codes', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->string('kode', 2);
|
|
||||||
$table->string('name');
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('special_codes');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use App\Models\Directorat;
|
|
||||||
use App\Models\Job;
|
|
||||||
use App\Models\SpecialCode;
|
|
||||||
use App\Models\SubDirectorat;
|
|
||||||
use App\Models\SubJob;
|
|
||||||
use App\Models\SubSubJob;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('documents', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignIdFor(Directorat::class)->constrained()->onDelete('cascade');
|
|
||||||
$table->foreignIdFor(SubDirectorat::class)->constrained()->onDelete('cascade');
|
|
||||||
$table->foreignIdFor(Job::class)->constrained()->onDelete('cascade');
|
|
||||||
$table->foreignIdFor(SubJob::class)->constrained()->onDelete('cascade');
|
|
||||||
$table->foreignIdFor(SubSubJob::class)->constrained()->onDelete('cascade');
|
|
||||||
$table->foreignIdFor(SpecialCode::class)->nullable()->constrained()->onDelete('cascade');
|
|
||||||
$table->string('no_urut',3)->nullable();
|
|
||||||
$table->string('sequence',100)->nullable();
|
|
||||||
$table->string('kode', 15);
|
|
||||||
$table->string('status')->nullable();
|
|
||||||
$table->string('keterangan')->nullable();
|
|
||||||
$table->enum('jenis_dokumen',['nasabah','non nasabah'])->nullable();
|
|
||||||
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('documents');
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,54 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::create('document_details', function (Blueprint $table) {
|
|
||||||
$table->id();
|
|
||||||
$table->foreignId('document_id')->constrained('documents')->onDelete('cascade');
|
|
||||||
$table->foreignId('document_type_id')->nullable()->constrained('document_types')->onDelete('cascade');
|
|
||||||
|
|
||||||
$table->string('nama_nasabah')->nullable();
|
|
||||||
$table->string('no_rekening')->nullable();
|
|
||||||
$table->string('no_cif')->nullable();
|
|
||||||
$table->string('group')->nullable();
|
|
||||||
|
|
||||||
$table->date('tanggal_upload')->nullable();
|
|
||||||
$table->date('tanggal_dokumen')->nullable();
|
|
||||||
$table->string('nomor_dokumen')->nullable();
|
|
||||||
$table->string('perihal')->nullable();
|
|
||||||
$table->string('kode_cabang')->nullable();
|
|
||||||
$table->string('jumlah_halaman')->nullable();
|
|
||||||
$table->string('custom_field_1')->nullable();
|
|
||||||
$table->string('custom_field_2')->nullable();
|
|
||||||
$table->string('custom_field_3')->nullable();
|
|
||||||
$table->string('custom_field_4')->nullable();
|
|
||||||
$table->string('status')->nullable();
|
|
||||||
$table->string('keterangan')->nullable();
|
|
||||||
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('document_details');
|
|
||||||
}
|
|
||||||
};
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user