Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6307417ae3 | |||
| 55dc0751d3 | |||
| 97ffd322a1 | |||
| 6fb59e58e9 | |||
| 7e99d547c8 | |||
| 65f82c9bfd | |||
| 44ebc20d3c | |||
| b60bbd4290 | |||
| 29b705b59c | |||
| 95ab8eff7f | |||
| bfc2f7f1f9 | |||
| 50f1757a64 | |||
| 3309664bae |
@@ -4,6 +4,7 @@ APP_KEY=
|
|||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_TIMEZONE=UTC
|
APP_TIMEZONE=UTC
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
|
API_URL=http://localhost:8000
|
||||||
|
|
||||||
APP_LOCALE=en
|
APP_LOCALE=en
|
||||||
APP_FALLBACK_LOCALE=en
|
APP_FALLBACK_LOCALE=en
|
||||||
|
|||||||
@@ -12,30 +12,34 @@ class DashboardController extends Controller
|
|||||||
use GlobalApiResponse;
|
use GlobalApiResponse;
|
||||||
|
|
||||||
public function businnessDocument(Request $request){
|
public function businnessDocument(Request $request){
|
||||||
$query = DB::table('pbg_task AS pt')
|
$query = once(function () {
|
||||||
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
return DB::table('pbg_task AS pt')
|
||||||
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
|
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
||||||
->where(function ($query) {
|
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid')
|
||||||
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
|
->where(function ($query) {
|
||||||
->orWhereNull('ptgs.status_verifikasi');
|
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
|
||||||
})
|
->orWhereNull('ptgs.status_verifikasi');
|
||||||
->where(function ($query) {
|
})
|
||||||
$query->whereRaw('LOWER(TRIM(pt.function_type)) = ?', [strtolower(trim('Sebagai Tempat Usaha'))]);
|
->where(function ($query) {
|
||||||
})
|
$query->whereRaw('LOWER(TRIM(pt.function_type)) = ?', [strtolower(trim('Sebagai Tempat Usaha'))]);
|
||||||
->selectRaw('COUNT(pt.id) AS total_data,
|
})
|
||||||
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
|
->selectRaw('COUNT(pt.id) AS total_data,
|
||||||
->first();
|
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution')
|
||||||
$taskCount = $query->total_data;
|
->first();
|
||||||
|
});
|
||||||
|
|
||||||
|
$taskCount = $query->total_data ?? 0;
|
||||||
$taskTotal = $query->total_retribution ?? 0;
|
$taskTotal = $query->total_retribution ?? 0;
|
||||||
$result = [
|
|
||||||
|
return $this->resSuccess([
|
||||||
"count" => $taskCount,
|
"count" => $taskCount,
|
||||||
"total" => $taskTotal
|
"total" => $taskTotal
|
||||||
];
|
]);
|
||||||
return $this->resSuccess($result);
|
|
||||||
}
|
}
|
||||||
public function nonBusinnessDocument(Request $request){
|
public function nonBusinnessDocument(Request $request){
|
||||||
|
|
||||||
$query = DB::table('pbg_task AS pt')
|
$query = once( function () {
|
||||||
|
return DB::table('pbg_task AS pt')
|
||||||
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
||||||
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
|
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
|
||||||
->where(function ($query) {
|
->where(function ($query) {
|
||||||
@@ -49,53 +53,55 @@ class DashboardController extends Controller
|
|||||||
->selectRaw('COUNT(pt.id) AS total_data,
|
->selectRaw('COUNT(pt.id) AS total_data,
|
||||||
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
|
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
|
||||||
->first();
|
->first();
|
||||||
$taskCount = $query->total_data;
|
});
|
||||||
|
$taskCount = $query->total_data ?? 0;
|
||||||
$taskTotal = $query->total_retribution ?? 0;
|
$taskTotal = $query->total_retribution ?? 0;
|
||||||
$result = [
|
return $this->resSuccess([
|
||||||
"count" => $taskCount,
|
"count" => $taskCount,
|
||||||
"total" => $taskTotal
|
"total" => $taskTotal
|
||||||
];
|
]);
|
||||||
return $this->resSuccess($result);
|
|
||||||
}
|
}
|
||||||
public function allTaskDocuments(){
|
public function allTaskDocuments(){
|
||||||
$query = DB::table('pbg_task')
|
$query = once( function () {
|
||||||
|
return DB::table('pbg_task')
|
||||||
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
|
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
|
||||||
->select(
|
->select(
|
||||||
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
|
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
|
||||||
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
|
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
|
||||||
)
|
)
|
||||||
->first();
|
->first();
|
||||||
$taskCount = $query->task_count;
|
});
|
||||||
$taskTotal = $query->total_retribution;
|
$taskCount = $query->task_count ?? 0;
|
||||||
$result = [
|
$taskTotal = $query->total_retribution ?? 0;
|
||||||
|
return $this->resSuccess([
|
||||||
"count" => $taskCount,
|
"count" => $taskCount,
|
||||||
"total" => $taskTotal
|
"total" => $taskTotal
|
||||||
];
|
]);
|
||||||
return $this->resSuccess($result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verificationDocuments(){
|
public function verificationDocuments(){
|
||||||
$query = DB::table('pbg_task AS pt')
|
$query = once( function (){
|
||||||
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
return DB::table('pbg_task AS pt')
|
||||||
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Menambahkan join ke pbg_task_retributions
|
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
||||||
->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) = ?', [strtolower(trim('Selesai Verifikasi'))])
|
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Menambahkan join ke pbg_task_retributions
|
||||||
->selectRaw('COUNT(pt.id) AS total_data,
|
->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) = ?', [strtolower(trim('Selesai Verifikasi'))])
|
||||||
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution')
|
->selectRaw('COUNT(pt.id) AS total_data,
|
||||||
->first();
|
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution')
|
||||||
|
->first();
|
||||||
|
});
|
||||||
|
|
||||||
$taskCount = $query->total_data;
|
$taskCount = $query->total_data ?? 0;
|
||||||
$taskTotal = $query->total_retribution;
|
$taskTotal = $query->total_retribution ?? 0;
|
||||||
|
|
||||||
$result = [
|
return $this->resSuccess([
|
||||||
"count"=> $taskCount,
|
"count"=> $taskCount,
|
||||||
"total"=> $taskTotal
|
"total"=> $taskTotal
|
||||||
];
|
]);
|
||||||
|
|
||||||
return $this->resSuccess($result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function nonVerificationDocuments(){
|
public function nonVerificationDocuments(){
|
||||||
$query = DB::table('pbg_task AS pt')
|
$query = once(function () {
|
||||||
|
return DB::table('pbg_task AS pt')
|
||||||
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
|
||||||
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join tabel pbg_task_retributions
|
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join tabel pbg_task_retributions
|
||||||
->where(function ($query) {
|
->where(function ($query) {
|
||||||
@@ -105,16 +111,15 @@ class DashboardController extends Controller
|
|||||||
->selectRaw('COUNT(pt.id) AS total_data,
|
->selectRaw('COUNT(pt.id) AS total_data,
|
||||||
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
|
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
|
||||||
->first();
|
->first();
|
||||||
|
});
|
||||||
|
|
||||||
$taskCount = $query->total_data;
|
$taskCount = $query->total_data ?? 0;
|
||||||
$taskTotal = $query->total_retribution ?? 0;
|
$taskTotal = $query->total_retribution ?? 0;
|
||||||
|
|
||||||
$result = [
|
return $this->resSuccess([
|
||||||
"count"=> $taskCount,
|
"count"=> $taskCount,
|
||||||
"total"=> $taskTotal
|
"total"=> $taskTotal
|
||||||
];
|
]);
|
||||||
|
|
||||||
return $this->resSuccess($result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function pbgTaskDocuments(Request $request){
|
public function pbgTaskDocuments(Request $request){
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Enums\ImportDatasourceStatus;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\PbgTaskMultiStepRequest;
|
use App\Http\Requests\PbgTaskMultiStepRequest;
|
||||||
|
use App\Http\Resources\PbgTaskResource;
|
||||||
|
use App\Models\ImportDatasource;
|
||||||
use App\Models\PbgTask;
|
use App\Models\PbgTask;
|
||||||
use App\Models\PbgTaskGoogleSheet;
|
use App\Models\PbgTaskGoogleSheet;
|
||||||
use App\Services\GoogleSheetService;
|
use App\Services\GoogleSheetService;
|
||||||
@@ -68,7 +71,19 @@ class PbgTaskController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show(string $id)
|
public function show(string $id)
|
||||||
{
|
{
|
||||||
//
|
try{
|
||||||
|
$pbg_task = PbgTask::with(['pbg_task_retributions','pbg_task_index_integrations','pbg_task_retributions.pbg_task_prasarana'])->findOrFail($id);
|
||||||
|
return response()->json([
|
||||||
|
"success"=> true,
|
||||||
|
"message"=> "Data ditemukan",
|
||||||
|
"data"=> $pbg_task
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
return response()->json([
|
||||||
|
"success"=> false,
|
||||||
|
"message"=> $e->getMessage(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -99,6 +114,13 @@ class PbgTaskController extends Controller
|
|||||||
$sheetData = $this->googleSheetService->getSheetDataCollection($totalRowCount);
|
$sheetData = $this->googleSheetService->getSheetDataCollection($totalRowCount);
|
||||||
$mapToUpsert = [];
|
$mapToUpsert = [];
|
||||||
$count = 0;
|
$count = 0;
|
||||||
|
|
||||||
|
$import_datasource = ImportDatasource::create([
|
||||||
|
"message" => "initialization",
|
||||||
|
"response_body" => null,
|
||||||
|
"status" => ImportDatasourceStatus::Processing->value,
|
||||||
|
]);
|
||||||
|
|
||||||
foreach($sheetData as $data){
|
foreach($sheetData as $data){
|
||||||
$mapToUpsert[] =
|
$mapToUpsert[] =
|
||||||
[
|
[
|
||||||
@@ -217,6 +239,13 @@ class PbgTaskController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$total_data = count($mapToUpsert);
|
||||||
|
|
||||||
|
$import_datasource->update([
|
||||||
|
"message" => "Successfully imported {$total_data}",
|
||||||
|
"status" => ImportDatasourceStatus::Success->value,
|
||||||
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@@ -225,6 +254,11 @@ class PbgTaskController extends Controller
|
|||||||
], 200);
|
], 200);
|
||||||
}catch(\Exception $ex){
|
}catch(\Exception $ex){
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
$import_datasource->update([
|
||||||
|
"message" => "Failed to importing",
|
||||||
|
"response_body" => $ex->getMessage(),
|
||||||
|
"status" => ImportDatasourceStatus::Failed->value,
|
||||||
|
]);
|
||||||
return response()->json([
|
return response()->json([
|
||||||
"success" => false,
|
"success" => false,
|
||||||
"message" => "Gagal menyimpan data",
|
"message" => "Gagal menyimpan data",
|
||||||
|
|||||||
@@ -3,11 +3,19 @@
|
|||||||
namespace App\Http\Controllers\Dashboards;
|
namespace App\Http\Controllers\Dashboards;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\ImportDatasource;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class BigDataController extends Controller
|
class BigDataController extends Controller
|
||||||
{
|
{
|
||||||
public function index(){
|
public function index(){
|
||||||
return view('dashboards.bigdata');
|
$latest_import_datasource = ImportDatasource::latest()->first();
|
||||||
|
$latest_created = $latest_import_datasource ?
|
||||||
|
$latest_import_datasource->created_at->format("j F Y H:i:s") : null;
|
||||||
|
return view('dashboards.bigdata', compact('latest_created'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function pbg(){
|
||||||
|
return view('index');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\RequestAssignment;
|
namespace App\Http\Controllers\RequestAssignment;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\PbgTask;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class PbgTaskController extends Controller
|
class PbgTaskController extends Controller
|
||||||
@@ -36,7 +37,8 @@ class PbgTaskController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show(string $id)
|
public function show(string $id)
|
||||||
{
|
{
|
||||||
return view("pbg_task.show");
|
$data = PbgTask::with(['pbg_task_retributions','pbg_task_index_integrations', 'pbg_task_retributions.pbg_task_prasarana'])->findOrFail($id);
|
||||||
|
return view("pbg_task.show", compact("data"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,32 +8,38 @@ use Illuminate\Http\Request;
|
|||||||
use Exception;
|
use Exception;
|
||||||
class SyncronizeController extends Controller
|
class SyncronizeController extends Controller
|
||||||
{
|
{
|
||||||
|
protected $service_simbg;
|
||||||
|
public function __construct(ServiceSIMBG $service_simbg){
|
||||||
|
$this->service_simbg = $service_simbg;
|
||||||
|
}
|
||||||
public function index(Request $request){
|
public function index(Request $request){
|
||||||
return view('settings.syncronize.index');
|
return view('settings.syncronize.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function syncPbgTask(){
|
public function syncPbgTask(){
|
||||||
$res = (new ServiceSIMBG())->syncTaskList();
|
$res = $this->service_simbg->syncTaskList();
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function syncronizeTask(Request $request){
|
public function syncronizeTask(Request $request){
|
||||||
$res = (new ServiceSIMBG())->syncTaskList();
|
$res = $this->service_simbg->syncTaskList();
|
||||||
return redirect()->back()->with('success', 'Processing completed successfully');
|
return redirect()->back()->with('success', 'Processing completed successfully');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserToken(){
|
public function getUserToken(){
|
||||||
$res = (new ServiceSIMBG())->getToken();
|
$res = $this->service_simbg->getToken();
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function syncIndexIntegration($uuid){
|
public function syncIndexIntegration(Request $request, $uuid){
|
||||||
$res = (new ServiceSIMBG())->syncIndexIntegration($uuid);
|
$token = $request->get('token');
|
||||||
|
$res = $this->service_simbg->syncIndexIntegration($uuid, $token);
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function syncTaskDetailSubmit($uuid){
|
public function syncTaskDetailSubmit(Request $request, $uuid){
|
||||||
$res = (new ServiceSIMBG())->syncTaskDetailSubmit($uuid);
|
$token = $request->get('token');
|
||||||
|
$res = $this->service_simbg->syncTaskDetailSubmit($uuid, $token);
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,11 @@ class PbgTask extends Model
|
|||||||
'task_created_at'
|
'task_created_at'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function retributions(){
|
public function pbg_task_retributions(){
|
||||||
return $this->hasOne(PbgTaskRetributions::class, 'pbg_task_uid', 'uuid');
|
return $this->hasOne(PbgTaskRetributions::class, 'pbg_task_uid', 'uuid');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function pbg_task_index_integrations(){
|
||||||
|
return $this->hasOne(PbgTaskIndexIntegrations::class, 'pbg_task_uid', 'uuid');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,8 @@ class PbgTaskIndexIntegrations extends Model
|
|||||||
'indeks_terintegrasi',
|
'indeks_terintegrasi',
|
||||||
'total',
|
'total',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function pbg_task(){
|
||||||
|
return $this->belongsTo(PbgTask::class, 'pbg_task_uid', 'uuid');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,5 +20,10 @@ class PbgTaskPrasarana extends Model
|
|||||||
'quantity',
|
'quantity',
|
||||||
'unit',
|
'unit',
|
||||||
'index_prasarana',
|
'index_prasarana',
|
||||||
|
'pbg_task_retribution_id'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function pbg_task_retributions(){
|
||||||
|
return $this->hasMany(PbgTaskRetributions::class, 'pbg_task_retribution_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,11 @@ class PbgTaskRetributions extends Model
|
|||||||
'pbg_task_uid'
|
'pbg_task_uid'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function task(){
|
public function pbg_task(){
|
||||||
return $this->belongsTo(PbgTask::class, 'pbg_task_uid', 'uuid');
|
return $this->belongsTo(PbgTask::class, 'pbg_task_uid', 'uuid');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function pbg_task_prasarana(){
|
||||||
|
return $this->hasMany(PbgTaskPrasarana::class, 'pbg_task_retribution_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-16
@@ -21,26 +21,27 @@ class ServiceSIMBG
|
|||||||
private $password;
|
private $password;
|
||||||
private $simbg_host;
|
private $simbg_host;
|
||||||
private $fetch_per_page;
|
private $fetch_per_page;
|
||||||
|
private $service_client;
|
||||||
/**
|
/**
|
||||||
* Create a new class instance.
|
* Create a new class instance.
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct(ServiceClient $service_client)
|
||||||
{
|
{
|
||||||
$this->email = trim((string) GlobalSetting::where('key','SIMBG_EMAIL')->first()->value);
|
$this->email = trim((string) GlobalSetting::where('key','SIMBG_EMAIL')->first()->value);
|
||||||
$this->password = trim((string) GlobalSetting::where('key','SIMBG_PASSWORD')->first()->value);
|
$this->password = trim((string) GlobalSetting::where('key','SIMBG_PASSWORD')->first()->value);
|
||||||
$this->simbg_host = trim((string)GlobalSetting::where('key','SIMBG_HOST')->first()->value);
|
$this->simbg_host = trim((string)GlobalSetting::where('key','SIMBG_HOST')->first()->value);
|
||||||
$this->fetch_per_page = trim((string)GlobalSetting::where('key','FETCH_PER_PAGE')->first()->value);
|
$this->fetch_per_page = trim((string)GlobalSetting::where('key','FETCH_PER_PAGE')->first()->value);
|
||||||
|
$this->service_client = new ServiceClient($this->simbg_host);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getToken(){
|
public function getToken(){
|
||||||
$clientHelper = new ServiceClient($this->simbg_host);
|
|
||||||
$url = "/api/user/v1/auth/login/";
|
$url = "/api/user/v1/auth/login/";
|
||||||
$body = [
|
$body = [
|
||||||
'email' => $this->email,
|
'email' => $this->email,
|
||||||
'password' => $this->password,
|
'password' => $this->password,
|
||||||
];
|
];
|
||||||
|
|
||||||
$res = $clientHelper->post($url, $body);
|
$res = $this->service_client->post($url, $body);
|
||||||
if(!$res->original['success']){
|
if(!$res->original['success']){
|
||||||
Log::error("Token not retrieved ", ['response' => $res]);
|
Log::error("Token not retrieved ", ['response' => $res]);
|
||||||
return null;
|
return null;
|
||||||
@@ -50,14 +51,13 @@ class ServiceSIMBG
|
|||||||
|
|
||||||
public function syncIndexIntegration($uuid, $token)
|
public function syncIndexIntegration($uuid, $token)
|
||||||
{
|
{
|
||||||
$clientHelper = new ServiceClient($this->simbg_host);
|
|
||||||
$url = "/api/pbg/v1/detail/" . $uuid . "/retribution/indeks-terintegrasi/";
|
$url = "/api/pbg/v1/detail/" . $uuid . "/retribution/indeks-terintegrasi/";
|
||||||
|
|
||||||
$headers = [
|
$headers = [
|
||||||
'Authorization' => "Bearer " . $token,
|
'Authorization' => "Bearer " . $token,
|
||||||
];
|
];
|
||||||
|
|
||||||
$res = $clientHelper->get($url, $headers);
|
$res = $this->service_client->get($url, $headers);
|
||||||
|
|
||||||
Log::info("response index integration", ['res' => $res]);
|
Log::info("response index integration", ['res' => $res]);
|
||||||
|
|
||||||
@@ -98,7 +98,6 @@ class ServiceSIMBG
|
|||||||
|
|
||||||
public function syncTaskList()
|
public function syncTaskList()
|
||||||
{
|
{
|
||||||
$clientHelper = new ServiceClient($this->simbg_host);
|
|
||||||
$initResToken = $this->getToken();
|
$initResToken = $this->getToken();
|
||||||
|
|
||||||
$importDatasource = ImportDatasource::create([
|
$importDatasource = ImportDatasource::create([
|
||||||
@@ -117,7 +116,7 @@ class ServiceSIMBG
|
|||||||
$headers = ['Authorization' => "Bearer " . $apiToken];
|
$headers = ['Authorization' => "Bearer " . $apiToken];
|
||||||
|
|
||||||
$url = "/api/pbg/v1/list/?page=1&size={$this->fetch_per_page}&sort=ASC";
|
$url = "/api/pbg/v1/list/?page=1&size={$this->fetch_per_page}&sort=ASC";
|
||||||
$initialResponse = $clientHelper->get($url, $headers);
|
$initialResponse = $this->service_client->get($url, $headers);
|
||||||
|
|
||||||
$totalPage = $initialResponse->original['data']['total_page'] ?? 0;
|
$totalPage = $initialResponse->original['data']['total_page'] ?? 0;
|
||||||
if ($totalPage == 0) {
|
if ($totalPage == 0) {
|
||||||
@@ -130,7 +129,7 @@ class ServiceSIMBG
|
|||||||
|
|
||||||
$savedCount = $failedCount = 0;
|
$savedCount = $failedCount = 0;
|
||||||
|
|
||||||
for ($currentPage = 50; $currentPage <= $totalPage; $currentPage++) {
|
for ($currentPage = 1; $currentPage <= $totalPage; $currentPage++) {
|
||||||
$pageUrl = "/api/pbg/v1/list/?page={$currentPage}&size={$this->fetch_per_page}&sort=ASC";
|
$pageUrl = "/api/pbg/v1/list/?page={$currentPage}&size={$this->fetch_per_page}&sort=ASC";
|
||||||
$getToken = $this->getToken();
|
$getToken = $this->getToken();
|
||||||
Log::info("response index integration", ['currentPage' => $currentPage]);
|
Log::info("response index integration", ['currentPage' => $currentPage]);
|
||||||
@@ -143,7 +142,7 @@ class ServiceSIMBG
|
|||||||
}
|
}
|
||||||
$token = $getToken->original['data']['token']['access'];
|
$token = $getToken->original['data']['token']['access'];
|
||||||
$headers = ['Authorization' => "Bearer " . $token];
|
$headers = ['Authorization' => "Bearer " . $token];
|
||||||
$response = $clientHelper->get($pageUrl, $headers);
|
$response = $this->service_client->get($pageUrl, $headers);
|
||||||
$tasks = $response->original['data']['data'] ?? [];
|
$tasks = $response->original['data']['data'] ?? [];
|
||||||
|
|
||||||
if (empty($tasks)) {
|
if (empty($tasks)) {
|
||||||
@@ -221,16 +220,12 @@ class ServiceSIMBG
|
|||||||
|
|
||||||
public function syncTaskDetailSubmit($uuid, $token)
|
public function syncTaskDetailSubmit($uuid, $token)
|
||||||
{
|
{
|
||||||
$clientHelper = new ServiceClient($this->simbg_host);
|
|
||||||
|
|
||||||
$url = "/api/pbg/v1/detail/" . $uuid . "/retribution/submit/";
|
$url = "/api/pbg/v1/detail/" . $uuid . "/retribution/submit/";
|
||||||
$headers = [
|
$headers = [
|
||||||
'Authorization' => "Bearer " . $token,
|
'Authorization' => "Bearer " . $token,
|
||||||
];
|
];
|
||||||
|
|
||||||
$res = $clientHelper->get($url, $headers);
|
$res = $this->service_client->get($url, $headers);
|
||||||
|
|
||||||
Log::info("response task detail submit", ['res' => $res]);
|
|
||||||
|
|
||||||
if (empty($res->original['success']) || !$res->original['success']) {
|
if (empty($res->original['success']) || !$res->original['success']) {
|
||||||
// Log error
|
// Log error
|
||||||
@@ -252,7 +247,7 @@ class ServiceSIMBG
|
|||||||
? Carbon::parse($data['updated_at'])->format('Y-m-d H:i:s')
|
? Carbon::parse($data['updated_at'])->format('Y-m-d H:i:s')
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
PbgTaskRetributions::updateOrCreate(
|
$pbg_task_retributions = PbgTaskRetributions::updateOrCreate(
|
||||||
['detail_id' => $data['id']],
|
['detail_id' => $data['id']],
|
||||||
[
|
[
|
||||||
'detail_uid' => $data['uid'] ?? null,
|
'detail_uid' => $data['uid'] ?? null,
|
||||||
@@ -276,10 +271,13 @@ class ServiceSIMBG
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$pbg_task_retribution_id = $pbg_task_retributions->id;
|
||||||
|
|
||||||
$prasaranaData = $data['prasarana'] ?? [];
|
$prasaranaData = $data['prasarana'] ?? [];
|
||||||
if (!empty($prasaranaData)) {
|
if (!empty($prasaranaData)) {
|
||||||
$insertData = array_map(fn($item) => [
|
$insertData = array_map(fn($item) => [
|
||||||
'pbg_task_uid' => $uuid,
|
'pbg_task_uid' => $uuid,
|
||||||
|
'pbg_task_retribution_id' => $pbg_task_retribution_id,
|
||||||
'prasarana_id' => $item['id'] ?? null,
|
'prasarana_id' => $item['id'] ?? null,
|
||||||
'prasarana_type' => $item['prasarana_type'] ?? null,
|
'prasarana_type' => $item['prasarana_type'] ?? null,
|
||||||
'building_type' => $item['building_type'] ?? null,
|
'building_type' => $item['building_type'] ?? null,
|
||||||
@@ -290,7 +288,7 @@ class ServiceSIMBG
|
|||||||
], $prasaranaData);
|
], $prasaranaData);
|
||||||
|
|
||||||
// Use bulk insert or upsert for faster database operation
|
// Use bulk insert or upsert for faster database operation
|
||||||
PbgTaskPrasarana::upsert($insertData, ['pbg_task_uid', 'prasarana_id']);
|
PbgTaskPrasarana::upsert($insertData, ['prasarana_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::info("retribution and prasarana successfully", ['uuid' => $uuid]);
|
Log::info("retribution and prasarana successfully", ['uuid' => $uuid]);
|
||||||
|
|||||||
@@ -123,4 +123,5 @@ return [
|
|||||||
'store' => env('APP_MAINTENANCE_STORE', 'database'),
|
'store' => env('APP_MAINTENANCE_STORE', 'database'),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'api_url' => env('API_URL', 'http://localhost:8000')
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -12,6 +12,17 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task', function (Blueprint $table) {
|
Schema::table('pbg_task', function (Blueprint $table) {
|
||||||
|
$constraintExists = DB::select("
|
||||||
|
SELECT COUNT(*) as count
|
||||||
|
FROM information_schema.statistics
|
||||||
|
WHERE table_schema = DATABASE()
|
||||||
|
AND table_name = 'pbg_task'
|
||||||
|
AND index_name = 'pbg_task_uuid_unique'
|
||||||
|
");
|
||||||
|
|
||||||
|
if ($constraintExists[0]->count > 0) {
|
||||||
|
$table->dropUnique('pbg_task_uuid_unique');
|
||||||
|
}
|
||||||
$table->string('uuid')->nullable()->unique()->change();
|
$table->string('uuid')->nullable()->unique()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -22,6 +33,7 @@ return new class extends Migration
|
|||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task', function (Blueprint $table) {
|
Schema::table('pbg_task', function (Blueprint $table) {
|
||||||
|
$table->dropUnique('pbg_task_uuid_unique');
|
||||||
$table->string('uuid')->nullable()->change();
|
$table->string('uuid')->nullable()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -12,6 +12,17 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task_index_integrations', function (Blueprint $table) {
|
Schema::table('pbg_task_index_integrations', function (Blueprint $table) {
|
||||||
|
$constraintExists = DB::select("
|
||||||
|
SELECT COUNT(*) as count
|
||||||
|
FROM information_schema.statistics
|
||||||
|
WHERE table_schema = DATABASE()
|
||||||
|
AND table_name = 'pbg_task_index_integrations'
|
||||||
|
AND index_name = 'pbg_task_index_integrations_pbg_task_uid_unique'
|
||||||
|
");
|
||||||
|
|
||||||
|
if ($constraintExists[0]->count > 0) {
|
||||||
|
$table->dropUnique('pbg_task_index_integrations_pbg_task_uid_unique');
|
||||||
|
}
|
||||||
$table->string('pbg_task_uid')->unique()->change();
|
$table->string('pbg_task_uid')->unique()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -22,6 +33,7 @@ return new class extends Migration
|
|||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task_index_integrations', function (Blueprint $table) {
|
Schema::table('pbg_task_index_integrations', function (Blueprint $table) {
|
||||||
|
$table->dropUnique('pbg_task_index_integrations_pbg_task_uid_unique');
|
||||||
$table->string('pbg_task_uid')->unique()->change();
|
$table->string('pbg_task_uid')->unique()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,17 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task_retributions', function (Blueprint $table) {
|
Schema::table('pbg_task_retributions', function (Blueprint $table) {
|
||||||
|
$constraintExists = DB::select("
|
||||||
|
SELECT COUNT(*) as count
|
||||||
|
FROM information_schema.statistics
|
||||||
|
WHERE table_schema = DATABASE()
|
||||||
|
AND table_name = 'pbg_task_retributions'
|
||||||
|
AND index_name = 'pbg_task_retributions_detail_id_unique'
|
||||||
|
");
|
||||||
|
|
||||||
|
if ($constraintExists[0]->count > 0) {
|
||||||
|
$table->dropUnique('pbg_task_retributions_detail_id_unique');
|
||||||
|
}
|
||||||
$table->string('detail_id')->unique()->change();
|
$table->string('detail_id')->unique()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -22,6 +33,7 @@ return new class extends Migration
|
|||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('pbg_task_retributions', function (Blueprint $table) {
|
Schema::table('pbg_task_retributions', function (Blueprint $table) {
|
||||||
|
$table->dropUnique('pbg_task_retributions_detail_id_unique');
|
||||||
$table->string('detail_id')->unique()->change();
|
$table->string('detail_id')->unique()->change();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?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::table('pbg_task_prasarana', function (Blueprint $table) {
|
||||||
|
$constraintExists = DB::select("
|
||||||
|
SELECT COUNT(*) as count
|
||||||
|
FROM information_schema.statistics
|
||||||
|
WHERE table_schema = DATABASE()
|
||||||
|
AND table_name = 'pbg_task_prasarana'
|
||||||
|
AND index_name = 'pbg_task_prasarana_prasarana_id_unique'
|
||||||
|
");
|
||||||
|
|
||||||
|
if ($constraintExists[0]->count > 0) {
|
||||||
|
$table->dropUnique('pbg_task_prasarana_prasarana_id_unique');
|
||||||
|
}
|
||||||
|
$table->integer('prasarana_id')->nullable()->unique()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('pbg_task_prasarana', function (Blueprint $table) {
|
||||||
|
$table->dropUnique('pbg_task_prasarana_prasarana_id_unique');
|
||||||
|
$table->integer('prasarana_id')->nullable()->unique()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
<?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::table('pbg_task_prasarana', function (Blueprint $table) {
|
||||||
|
$table->unsignedBigInteger('pbg_task_retribution_id')->nullable(); // nullable in case some records do not match
|
||||||
|
|
||||||
|
// Step 2: Define the foreign key relation from `table3` to `table2`
|
||||||
|
$table->foreign('pbg_task_retribution_id')->references('id')->on('pbg_task_retributions')->onDelete('cascade');
|
||||||
|
});
|
||||||
|
|
||||||
|
\DB::table('pbg_task_prasarana')
|
||||||
|
->join('pbg_task', 'pbg_task.uuid', '=', 'pbg_task_prasarana.pbg_task_uid') // Relating pbg_task_prasarana to pbg_task
|
||||||
|
->join('pbg_task_retributions', 'pbg_task_retributions.pbg_task_uid', '=', 'pbg_task.uuid') // Relating pbg_task_retributions to pbg_task
|
||||||
|
->whereNotNull('pbg_task_retributions.id') // Ensure the `pbg_task_retributions` id exists
|
||||||
|
->update(['pbg_task_prasarana.pbg_task_retribution_id' => \DB::raw('pbg_task_retributions.id')]); // Set the foreign key
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('pbg_task_prasarana', function (Blueprint $table) {
|
||||||
|
$table->dropForeign(['pbg_task_retribution_id']);
|
||||||
|
$table->dropColumn('pbg_task_retribution_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -16,7 +16,12 @@ class DataSettingSeeder extends Seeder
|
|||||||
$data_settings = [
|
$data_settings = [
|
||||||
[
|
[
|
||||||
"key" => "TARGET_PAD",
|
"key" => "TARGET_PAD",
|
||||||
"value" => "33.200.000.000",
|
"value" => "50000000000",
|
||||||
|
"type" => "integer"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"key" => "TATA_RUANG",
|
||||||
|
"value" => "10000000000",
|
||||||
"type" => "integer"
|
"type" => "integer"
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
Generated
+2960
-2960
File diff suppressed because it is too large
Load Diff
+33
-33
@@ -1,35 +1,35 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"dev": "vite"
|
"dev": "vite"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"axios": "^1.7.4",
|
"axios": "^1.7.4",
|
||||||
"concurrently": "^9.0.1",
|
"concurrently": "^9.0.1",
|
||||||
"laravel-vite-plugin": "^1.0",
|
"laravel-vite-plugin": "^1.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
"sass": "^1.81.1",
|
"sass": "^1.81.1",
|
||||||
"tailwindcss": "^3.4.13",
|
"tailwindcss": "^3.4.13",
|
||||||
"vite": "^5.0"
|
"vite": "^5.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"apexcharts": "^3.44.2",
|
"apexcharts": "^3.44.2",
|
||||||
"big.js": "^6.2.2",
|
"big.js": "^6.2.2",
|
||||||
"bootstrap": "^5.3.3",
|
"bootstrap": "^5.3.3",
|
||||||
"countup.js": "^2.3.2",
|
"countup.js": "^2.3.2",
|
||||||
"dropzone": "^5.9.0",
|
"dropzone": "^5.9.0",
|
||||||
"flatpickr": "^4.6.13",
|
"flatpickr": "^4.6.13",
|
||||||
"gmaps": "^0.4.25",
|
"gmaps": "^0.4.25",
|
||||||
"gridjs": "^5.1.0",
|
"gridjs": "^5.1.0",
|
||||||
"iconify-icon": "^2.1.0",
|
"iconify-icon": "^2.1.0",
|
||||||
"jsvectormap": "^1.5.1",
|
"jsvectormap": "^1.5.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"node-waves": "^0.7.6",
|
"node-waves": "^0.7.6",
|
||||||
"quill": "^1.3.7",
|
"quill": "^1.3.7",
|
||||||
"simplebar": "^5.3.9",
|
"simplebar": "^5.3.9",
|
||||||
"wnumb": "^1.2.0"
|
"wnumb": "^1.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,284 @@
|
|||||||
|
{
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js": {
|
||||||
|
"file": "assets/_commonjsHelpers-C4iS2aBk.js",
|
||||||
|
"name": "_commonjsHelpers"
|
||||||
|
},
|
||||||
|
"_apexcharts.common-7mov3gaG.js": {
|
||||||
|
"file": "assets/apexcharts.common-7mov3gaG.js",
|
||||||
|
"name": "apexcharts.common",
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_global-config-9uDKFQ8j.js": {
|
||||||
|
"file": "assets/global-config-9uDKFQ8j.js",
|
||||||
|
"name": "global-config"
|
||||||
|
},
|
||||||
|
"_gridjs.umd-BiCNXlqL.js": {
|
||||||
|
"file": "assets/gridjs.umd-BiCNXlqL.js",
|
||||||
|
"name": "gridjs.umd",
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_world-BH8KG5u4.js": {
|
||||||
|
"file": "assets/world-BH8KG5u4.js",
|
||||||
|
"name": "world",
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/flatpickr/dist/flatpickr.min.css": {
|
||||||
|
"file": "assets/flatpickr-CksuuEqD.css",
|
||||||
|
"src": "node_modules/flatpickr/dist/flatpickr.min.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"node_modules/flatpickr/dist/themes/dark.css": {
|
||||||
|
"file": "assets/dark-CLxH30By.css",
|
||||||
|
"src": "node_modules/flatpickr/dist/themes/dark.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"node_modules/gridjs/dist/theme/mermaid.css": {
|
||||||
|
"file": "assets/mermaid-B5wPN5RC.css",
|
||||||
|
"src": "node_modules/gridjs/dist/theme/mermaid.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"node_modules/gridjs/dist/theme/mermaid.min.css": {
|
||||||
|
"file": "assets/mermaid-1KsrsKla.css",
|
||||||
|
"src": "node_modules/gridjs/dist/theme/mermaid.min.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"node_modules/quill/dist/quill.bubble.css": {
|
||||||
|
"file": "assets/quill-BzaoboQ1.css",
|
||||||
|
"src": "node_modules/quill/dist/quill.bubble.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"node_modules/quill/dist/quill.snow.css": {
|
||||||
|
"file": "assets/quill-D-Ncpkvi.css",
|
||||||
|
"src": "node_modules/quill/dist/quill.snow.css",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/fonts/boxicons.eot": {
|
||||||
|
"file": "assets/boxicons-0t2gX1vj.eot",
|
||||||
|
"src": "resources/fonts/boxicons.eot"
|
||||||
|
},
|
||||||
|
"resources/fonts/boxicons.svg": {
|
||||||
|
"file": "assets/boxicons-KSR1BgPC.svg",
|
||||||
|
"src": "resources/fonts/boxicons.svg"
|
||||||
|
},
|
||||||
|
"resources/fonts/boxicons.ttf": {
|
||||||
|
"file": "assets/boxicons-BEZXjQG5.ttf",
|
||||||
|
"src": "resources/fonts/boxicons.ttf"
|
||||||
|
},
|
||||||
|
"resources/fonts/boxicons.woff": {
|
||||||
|
"file": "assets/boxicons-CEgI8ccS.woff",
|
||||||
|
"src": "resources/fonts/boxicons.woff"
|
||||||
|
},
|
||||||
|
"resources/fonts/boxicons.woff2": {
|
||||||
|
"file": "assets/boxicons-C7pETWQJ.woff2",
|
||||||
|
"src": "resources/fonts/boxicons.woff2"
|
||||||
|
},
|
||||||
|
"resources/js/app.js": {
|
||||||
|
"file": "assets/app-Wz_4hh3O.js",
|
||||||
|
"name": "app",
|
||||||
|
"src": "resources/js/app.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/config.js": {
|
||||||
|
"file": "assets/config-DqV4EBmE.js",
|
||||||
|
"name": "config",
|
||||||
|
"src": "resources/js/config.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/dashboards/bigdata.js": {
|
||||||
|
"file": "assets/bigdata-C1y9KS-u.js",
|
||||||
|
"name": "bigdata",
|
||||||
|
"src": "resources/js/dashboards/bigdata.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_global-config-9uDKFQ8j.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/data-settings/index.js": {
|
||||||
|
"file": "assets/index-CzuDcG6g.js",
|
||||||
|
"name": "index",
|
||||||
|
"src": "resources/js/data-settings/index.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/master/users/users.js": {
|
||||||
|
"file": "assets/users-BoDXPe3W.js",
|
||||||
|
"name": "users",
|
||||||
|
"src": "resources/js/master/users/users.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/chart.js": {
|
||||||
|
"file": "assets/chart-DQBoD9wk.js",
|
||||||
|
"name": "chart",
|
||||||
|
"src": "resources/js/pages/chart.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_apexcharts.common-7mov3gaG.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/dashboard.js": {
|
||||||
|
"file": "assets/dashboard-nkb3Omy9.js",
|
||||||
|
"name": "dashboard",
|
||||||
|
"src": "resources/js/pages/dashboard.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_apexcharts.common-7mov3gaG.js",
|
||||||
|
"_world-BH8KG5u4.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/form-fileupload.js": {
|
||||||
|
"file": "assets/form-fileupload-mrxZaoHv.js",
|
||||||
|
"name": "form-fileupload",
|
||||||
|
"src": "resources/js/pages/form-fileupload.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/pages/form-flatepicker.js": {
|
||||||
|
"file": "assets/form-flatepicker-ChSlk6xC.js",
|
||||||
|
"name": "form-flatepicker",
|
||||||
|
"src": "resources/js/pages/form-flatepicker.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/form-quilljs.js": {
|
||||||
|
"file": "assets/form-quilljs-pSObT4Ti.js",
|
||||||
|
"name": "form-quilljs",
|
||||||
|
"src": "resources/js/pages/form-quilljs.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-canada.js": {
|
||||||
|
"file": "assets/maps-canada-Btz07hSk.js",
|
||||||
|
"name": "maps-canada",
|
||||||
|
"src": "resources/js/pages/maps-canada.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-google.js": {
|
||||||
|
"file": "assets/maps-google-KamR_rNw.js",
|
||||||
|
"name": "maps-google",
|
||||||
|
"src": "resources/js/pages/maps-google.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-iraq.js": {
|
||||||
|
"file": "assets/maps-iraq-Blhf9V_8.js",
|
||||||
|
"name": "maps-iraq",
|
||||||
|
"src": "resources/js/pages/maps-iraq.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-russia.js": {
|
||||||
|
"file": "assets/maps-russia-C3XucoMP.js",
|
||||||
|
"name": "maps-russia",
|
||||||
|
"src": "resources/js/pages/maps-russia.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-spain.js": {
|
||||||
|
"file": "assets/maps-spain-CdBIHB66.js",
|
||||||
|
"name": "maps-spain",
|
||||||
|
"src": "resources/js/pages/maps-spain.js",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/js/pages/maps-vector.js": {
|
||||||
|
"file": "assets/maps-vector-C2WpvMU7.js",
|
||||||
|
"name": "maps-vector",
|
||||||
|
"src": "resources/js/pages/maps-vector.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_world-BH8KG5u4.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pages/table-gridjs.js": {
|
||||||
|
"file": "assets/table-gridjs-BQh80cFh.js",
|
||||||
|
"name": "table-gridjs",
|
||||||
|
"src": "resources/js/pages/table-gridjs.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/pbg-task/index.js": {
|
||||||
|
"file": "assets/index-BW29TEbh.js",
|
||||||
|
"name": "index",
|
||||||
|
"src": "resources/js/pbg-task/index.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/settings/general/general-settings.js": {
|
||||||
|
"file": "assets/general-settings-BoJeYQk1.js",
|
||||||
|
"name": "general-settings",
|
||||||
|
"src": "resources/js/settings/general/general-settings.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/settings/syncronize/syncronize.js": {
|
||||||
|
"file": "assets/syncronize-DjtcngRb.js",
|
||||||
|
"name": "syncronize",
|
||||||
|
"src": "resources/js/settings/syncronize/syncronize.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/js/tables/common-table.js": {
|
||||||
|
"file": "assets/common-table-KF_NVAIE.js",
|
||||||
|
"name": "common-table",
|
||||||
|
"src": "resources/js/tables/common-table.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_gridjs.umd-BiCNXlqL.js",
|
||||||
|
"_global-config-9uDKFQ8j.js",
|
||||||
|
"__commonjsHelpers-C4iS2aBk.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resources/scss/components/_circle.scss": {
|
||||||
|
"file": "assets/_circle-ByHaR-XI.css",
|
||||||
|
"src": "resources/scss/components/_circle.scss",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/scss/icons.scss": {
|
||||||
|
"file": "assets/icons-CHxf0fE3.css",
|
||||||
|
"src": "resources/scss/icons.scss",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"resources/scss/style.scss": {
|
||||||
|
"file": "assets/style-B2v4WMju.css",
|
||||||
|
"src": "resources/scss/style.scss",
|
||||||
|
"isEntry": true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
var u=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function l(e){if(e.__esModule)return e;var r=e.default;if(typeof r=="function"){var t=function o(){return this instanceof o?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};t.prototype=r.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}),t}export{f as a,u as c,l as g};
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 1.2 MiB |
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
(function(){var i=sessionStorage.getItem("__DARKONE_CONFIG__"),e=document.getElementsByTagName("html")[0],a={theme:"light",topbar:{color:"light"},menu:{size:"default",color:"light"}};document.getElementsByTagName("html")[0];var t=Object.assign(JSON.parse(JSON.stringify(a)),{});(t=Object.assign(JSON.parse(JSON.stringify(a)),{})).theme=e.getAttribute("data-bs-theme")||a.theme,t.topbar.color=e.getAttribute("data-topbar-color")||a.topbar.color,t.menu.color=e.getAttribute("data-sidebar-color")||a.menu.color,t.menu.size=e.getAttribute("data-sidebar-size")||a.menu.size,window.defaultConfig=JSON.parse(JSON.stringify(t)),i!==null&&(t=JSON.parse(i)),(window.config=t)&&(e.setAttribute("data-bs-theme",t.theme),e.setAttribute("data-topbar-color",t.topbar.color),e.setAttribute("data-sidebar-color",t.menu.color),window.innerWidth<=1140?e.setAttribute("data-sidebar-size","hidden"):e.setAttribute("data-sidebar-size",t.menu.size))})();
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
import{A as t}from"./apexcharts.common-7mov3gaG.js";import{j as i}from"./world-BH8KG5u4.js";import"./_commonjsHelpers-C4iS2aBk.js";var r={chart:{type:"area",height:50,sparkline:{enabled:!0}},series:[{data:[25,28,32,38,43,55,60,48,42,51,35]}],stroke:{width:2,curve:"smooth"},markers:{size:0},colors:["#7e67fe"],tooltip:{fixed:{enabled:!1},x:{show:!1},y:{title:{formatter:function(e){return""}}},marker:{show:!1}},fill:{opacity:[1],type:["gradient"],gradient:{type:"vertical",inverseColors:!1,opacityFrom:.5,opacityTo:0,stops:[0,100]}}};new t(document.querySelector("#chart01"),r).render();var r={chart:{type:"area",height:50,sparkline:{enabled:!0}},series:[{data:[87,54,4,76,31,95,70,92,53,9,6]}],stroke:{width:2,curve:"smooth"},markers:{size:0},colors:["#7e67fe"],tooltip:{fixed:{enabled:!1},x:{show:!1},y:{title:{formatter:function(e){return""}}},marker:{show:!1}},fill:{opacity:[1],type:["gradient"],gradient:{type:"vertical",inverseColors:!1,opacityFrom:.5,opacityTo:0,stops:[0,100]}}};new t(document.querySelector("#chart02"),r).render();var r={chart:{type:"area",height:50,sparkline:{enabled:!0}},series:[{data:[41,42,35,42,6,12,13,22,42,94,95]}],stroke:{width:2,curve:"smooth"},markers:{size:0},colors:["#7e67fe"],tooltip:{fixed:{enabled:!1},x:{show:!1},y:{title:{formatter:function(e){return""}}},marker:{show:!1}},fill:{opacity:[1],type:["gradient"],gradient:{type:"vertical",inverseColors:!1,opacityFrom:.5,opacityTo:0,stops:[0,100]}}};new t(document.querySelector("#chart03"),r).render();var r={chart:{type:"area",height:50,sparkline:{enabled:!0}},series:[{data:[8,41,40,48,77,35,0,77,63,100,71]}],stroke:{width:2,curve:"smooth"},markers:{size:0},colors:["#7e67fe"],tooltip:{fixed:{enabled:!1},x:{show:!1},y:{title:{formatter:function(e){return""}}},marker:{show:!1}},fill:{opacity:[1],type:["gradient"],gradient:{type:"vertical",inverseColors:!1,opacityFrom:.5,opacityTo:0,stops:[0,100]}}};new t(document.querySelector("#chart04"),r).render();var a={chart:{height:180,type:"donut"},series:[44.25,52.68,45.98],legend:{show:!1},stroke:{width:0},plotOptions:{pie:{donut:{size:"70%",labels:{show:!1,total:{showAlways:!0,show:!0}}}}},labels:["Direct","Affilliate","Sponsored"],colors:["#7e67fe","#17c553","#7942ed"],dataLabels:{enabled:!1},responsive:[{breakpoint:480,options:{chart:{width:200}}}],fill:{type:"gradient"}},o=new t(document.querySelector("#conversions"),a);o.render();var a={series:[{name:"Page Views",type:"bar",data:[34,65,46,68,49,61,42,44,78,52,63,67]},{name:"Clicks",type:"area",data:[8,12,7,17,21,11,5,9,7,29,12,35]},{name:"Revenue",type:"area",data:[12,16,11,22,28,25,15,29,35,45,42,48]}],chart:{height:330,type:"line",toolbar:{show:!1}},stroke:{dashArray:[0,0,2],width:[0,2,2],curve:"smooth"},fill:{opacity:[1,1,1],type:["solid","gradient","gradient"],gradient:{type:"vertical",inverseColors:!1,opacityFrom:.5,opacityTo:0,stops:[0,90]}},markers:{size:[0,0],strokeWidth:2,hover:{size:4}},xaxis:{categories:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],axisTicks:{show:!1},axisBorder:{show:!1}},yaxis:{min:0,axisBorder:{show:!1}},grid:{show:!0,strokeDashArray:3,xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},padding:{top:0,right:-2,bottom:10,left:10}},legend:{show:!0,horizontalAlign:"center",offsetX:0,offsetY:5,markers:{width:9,height:9,radius:6},itemMargin:{horizontal:10,vertical:0}},plotOptions:{bar:{columnWidth:"30%",barHeight:"70%",borderRadius:3}},colors:["#7e67fe","#17c553","#7942ed"],tooltip:{shared:!0,y:[{formatter:function(e){return typeof e<"u"?e.toFixed(1)+"k":e}},{formatter:function(e){return typeof e<"u"?e.toFixed(1)+"k":e}}]}},o=new t(document.querySelector("#dash-performance-chart"),a);o.render();class n{initWorldMapMarker(){new i({map:"world",selector:"#world-map-markers",zoomOnScroll:!0,zoomButtons:!1,markersSelectable:!0,markers:[{name:"Canada",coords:[56.1304,-106.3468]},{name:"Brazil",coords:[-14.235,-51.9253]},{name:"Russia",coords:[61,105]},{name:"China",coords:[35.8617,104.1954]},{name:"United States",coords:[37.0902,-95.7129]}],markerStyle:{initial:{fill:"#7f56da"},selected:{fill:"#1bb394"}},labels:{markers:{render:s=>s.name}},regionStyle:{initial:{fill:"rgba(169,183,197, 0.3)",fillOpacity:1}}})}init(){this.initWorldMapMarker()}}document.addEventListener("DOMContentLoaded",function(e){new n().init()});
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
import{j as a}from"./world-BH8KG5u4.js";import"./_commonjsHelpers-C4iS2aBk.js";class r{initWorldMapMarker(){new a({map:"world",selector:"#world-map-markers",zoomOnScroll:!1,zoomButtons:!0,markersSelectable:!0,markers:[{name:"Greenland",coords:[72,-42]},{name:"Canada",coords:[56.1304,-106.3468]},{name:"Brazil",coords:[-14.235,-51.9253]},{name:"Egypt",coords:[26.8206,30.8025]},{name:"Russia",coords:[61,105]},{name:"China",coords:[35.8617,104.1954]},{name:"United States",coords:[37.0902,-95.7129]},{name:"Norway",coords:[60.472024,8.468946]},{name:"Ukraine",coords:[48.379433,31.16558]}],markerStyle:{initial:{fill:"#5B8DEC"},selected:{fill:"#ed5565"}},labels:{markers:{render:i=>i.name}},regionStyle:{initial:{fill:"rgba(169,183,197, 0.2)",fillOpacity:1}}})}initCanadaVectorMap(){new a({map:"canada",selector:"#canada-vector-map",zoomOnScroll:!1,regionStyle:{initial:{fill:"#1e84c4"}}})}initRussiaVectorMap(){new a({map:"russia",selector:"#russia-vector-map",zoomOnScroll:!1,regionStyle:{initial:{fill:"#1bb394"}}})}initIraqVectorMap(){new a({map:"iraq",selector:"#iraq-vector-map",zoomOnScroll:!1,regionStyle:{initial:{fill:"#f8ac59"}}})}initSpainVectorMap(){new a({map:"spain",selector:"#spain-vector-map",zoomOnScroll:!1,regionStyle:{initial:{fill:"#23c6c8"}}})}initUsaVectorMap(){new a({map:"us_merc_en",selector:"#usa-vector-map",regionStyle:{initial:{fill:"#ffe381"}}})}init(){this.initWorldMapMarker(),this.initCanadaVectorMap(),this.initRussiaVectorMap(),this.initIraqVectorMap(),this.initSpainVectorMap()}}document.addEventListener("DOMContentLoaded",function(e){new r().init()});
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
+643
File diff suppressed because one or more lines are too long
+4
-5
@@ -1,9 +1,8 @@
|
|||||||
|
import bootstrap from "bootstrap/dist/js/bootstrap";
|
||||||
import bootstrap from 'bootstrap/dist/js/bootstrap'
|
|
||||||
window.bootstrap = bootstrap;
|
window.bootstrap = bootstrap;
|
||||||
import 'iconify-icon';
|
import "iconify-icon";
|
||||||
import 'simplebar/dist/simplebar'
|
import "simplebar/dist/simplebar";
|
||||||
|
|
||||||
class Components {
|
class Components {
|
||||||
initBootstrapComponents() {
|
initBootstrapComponents() {
|
||||||
[...document.querySelectorAll('[data-bs-toggle="popover"]')].map(
|
[...document.querySelectorAll('[data-bs-toggle="popover"]')].map(
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class BigData {
|
|||||||
this.dataNonVerification = await this.getDataNonVerfication();
|
this.dataNonVerification = await this.getDataNonVerfication();
|
||||||
this.dataBusiness = await this.getDataBusiness();
|
this.dataBusiness = await this.getDataBusiness();
|
||||||
this.dataNonBusiness = await this.getDataNonBusiness();
|
this.dataNonBusiness = await this.getDataNonBusiness();
|
||||||
|
this.dataTataRuang = await this.getDataTataRuang();
|
||||||
|
|
||||||
// total potensi
|
// total potensi
|
||||||
this.bigTargetPAD = new Big(this.totalTargetPAD ?? 0);
|
this.bigTargetPAD = new Big(this.totalTargetPAD ?? 0);
|
||||||
@@ -26,12 +27,23 @@ class BigData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tata ruang
|
||||||
|
this.bigTotalTataRuang = new Big(this.dataTataRuang);
|
||||||
|
this.percentageResultTataRuang =
|
||||||
|
this.bigTotalTataRuang <= 0 || this.bigTotalPotensi <= 0
|
||||||
|
? 0
|
||||||
|
: this.bigTotalTataRuang
|
||||||
|
.div(this.bigTotalPotensi)
|
||||||
|
.times(100)
|
||||||
|
.toFixed(2);
|
||||||
|
|
||||||
// kekurangan potensi
|
// kekurangan potensi
|
||||||
this.totalKekuranganPotensi = new Big(
|
this.totalKekuranganPotensi = new Big(
|
||||||
this.totalTargetPAD - this.bigTotalPotensi
|
this.bigTargetPAD - this.bigTotalPotensi
|
||||||
);
|
);
|
||||||
|
|
||||||
this.percentageKekuranganPotensi =
|
this.percentageKekuranganPotensi =
|
||||||
this.totalKekuranganPotensi <= 0 || this.totalTargetPAD <= 0
|
this.totalKekuranganPotensi <= 0 || this.bigTargetPAD <= 0
|
||||||
? 0
|
? 0
|
||||||
: this.totalKekuranganPotensi
|
: this.totalKekuranganPotensi
|
||||||
.div(this.bigTargetPAD)
|
.div(this.bigTargetPAD)
|
||||||
@@ -77,7 +89,7 @@ class BigData {
|
|||||||
.times(100)
|
.times(100)
|
||||||
.toFixed(2);
|
.toFixed(2);
|
||||||
|
|
||||||
if (!this.totalTargetPAD) {
|
if (!this.bigTargetPAD) {
|
||||||
console.error("Failed to load chart data");
|
console.error("Failed to load chart data");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -154,7 +166,7 @@ class BigData {
|
|||||||
return data.data[0].value;
|
return data.data[0].value;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching chart data:", error);
|
console.error("Error fetching chart data:", error);
|
||||||
return null;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,7 +197,7 @@ class BigData {
|
|||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching chart data:", error);
|
console.error("Error fetching chart data:", error);
|
||||||
return null;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,7 +228,7 @@ class BigData {
|
|||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching chart data:", error);
|
console.error("Error fetching chart data:", error);
|
||||||
return null;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +259,7 @@ class BigData {
|
|||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching chart data:", error);
|
console.error("Error fetching chart data:", error);
|
||||||
return null;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,52 +290,55 @@ class BigData {
|
|||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching chart data:", error);
|
console.error("Error fetching chart data:", error);
|
||||||
return null;
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async getDataTataRuang() {
|
||||||
|
try {
|
||||||
|
const response = await fetch(
|
||||||
|
`${GlobalConfig.apiHost}/api/api-data-settings?search=tata_ruang`,
|
||||||
|
{
|
||||||
|
credentials: "include",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${
|
||||||
|
document.querySelector("meta[name='api-token']")
|
||||||
|
.content
|
||||||
|
}`,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
console.error("Network response was not ok", response);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
return data.data[0].value;
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error fetching chart data:", error);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initChartTargetPAD() {
|
initChartTargetPAD() {
|
||||||
let totalPad = 0;
|
document
|
||||||
fetch(
|
.querySelectorAll(".document-count.chart-target-pad")
|
||||||
`${GlobalConfig.apiHost}/api/api-data-settings?search=target_pad`,
|
.forEach((element) => {
|
||||||
{
|
element.innerText = ``;
|
||||||
credentials: "include",
|
});
|
||||||
headers: {
|
document
|
||||||
Authorization: `Bearer ${
|
.querySelectorAll(".document-total.chart-target-pad")
|
||||||
document.querySelector("meta[name='api-token']").content
|
.forEach((element) => {
|
||||||
}`,
|
element.innerText = `Rp.${addThousandSeparators(
|
||||||
"Content-Type": "application/json",
|
this.bigTargetPAD.toString()
|
||||||
},
|
)}`;
|
||||||
}
|
});
|
||||||
)
|
document
|
||||||
.then((response) => {
|
.querySelectorAll(".small-percentage.chart-target-pad")
|
||||||
if (!response.ok) {
|
.forEach((element) => {
|
||||||
throw new Error("Network response was not ok");
|
element.innerText = `${100}%`;
|
||||||
}
|
|
||||||
return response.json();
|
|
||||||
})
|
|
||||||
.then((data) => {
|
|
||||||
totalPad = data.data[0].value;
|
|
||||||
document
|
|
||||||
.querySelectorAll(".document-count.chart-target-pad")
|
|
||||||
.forEach((element) => {
|
|
||||||
element.innerText = ``;
|
|
||||||
});
|
|
||||||
document
|
|
||||||
.querySelectorAll(".document-total.chart-target-pad")
|
|
||||||
.forEach((element) => {
|
|
||||||
element.innerText = `Rp.${addThousandSeparators(
|
|
||||||
totalPad
|
|
||||||
)}`;
|
|
||||||
});
|
|
||||||
document
|
|
||||||
.querySelectorAll(".small-percentage.chart-target-pad")
|
|
||||||
.forEach((element) => {
|
|
||||||
element.innerText = `${100}%`;
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
console.error("Error fetching target_pad:", error);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initChartTotalPotensi() {
|
initChartTotalPotensi() {
|
||||||
@@ -503,17 +518,19 @@ class BigData {
|
|||||||
document
|
document
|
||||||
.querySelectorAll(".document-count.chart-potensi-tata-ruang")
|
.querySelectorAll(".document-count.chart-potensi-tata-ruang")
|
||||||
.forEach((element) => {
|
.forEach((element) => {
|
||||||
element.innerText = `${0}`;
|
element.innerText = "";
|
||||||
});
|
});
|
||||||
document
|
document
|
||||||
.querySelectorAll(".document-total.chart-potensi-tata-ruang")
|
.querySelectorAll(".document-total.chart-potensi-tata-ruang")
|
||||||
.forEach((element) => {
|
.forEach((element) => {
|
||||||
element.innerText = `Rp.${addThousandSeparators("0.00")}`;
|
element.innerText = `Rp.${addThousandSeparators(
|
||||||
|
this.bigTotalTataRuang.toString()
|
||||||
|
)}`;
|
||||||
});
|
});
|
||||||
document
|
document
|
||||||
.querySelectorAll(".small-percentage.chart-potensi-tata-ruang")
|
.querySelectorAll(".small-percentage.chart-potensi-tata-ruang")
|
||||||
.forEach((element) => {
|
.forEach((element) => {
|
||||||
element.innerText = `0.00%`;
|
element.innerText = `${this.percentageResultTataRuang}%`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
const GlobalConfig = {
|
export default GlobalConfig = window.GlobalConfig;
|
||||||
apiHost: "http://localhost:8000",
|
|
||||||
};
|
|
||||||
|
|
||||||
export default GlobalConfig;
|
|
||||||
|
|
||||||
export function addThousandSeparators(value, fractionDigits = 2) {
|
export function addThousandSeparators(value, fractionDigits = 2) {
|
||||||
if (!value) return null; // Handle empty or null values
|
if (!value) return null; // Handle empty or null values
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
||||||
import "gridjs/dist/gridjs.umd.js";
|
import "gridjs/dist/gridjs.umd.js";
|
||||||
|
import gridjs from "gridjs/dist/gridjs.umd.js";
|
||||||
import GlobalConfig from "../global-config";
|
import GlobalConfig from "../global-config";
|
||||||
|
|
||||||
class PbgTasks {
|
class PbgTasks {
|
||||||
@@ -19,7 +20,17 @@ class PbgTasks {
|
|||||||
"Status",
|
"Status",
|
||||||
"Function Type",
|
"Function Type",
|
||||||
"Consultation Type",
|
"Consultation Type",
|
||||||
{ name: "Due Date", width: "7%" },
|
{ name: "Due Date", width: "10%" },
|
||||||
|
{
|
||||||
|
name: "Action",
|
||||||
|
formatter: function (cell) {
|
||||||
|
return gridjs.html(`
|
||||||
|
<div class="d-flex justify-items-end gap-10">
|
||||||
|
<a href="/pbg-task/${cell}" class="btn btn-yellow">Detail</a
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
search: {
|
search: {
|
||||||
server: {
|
server: {
|
||||||
@@ -57,6 +68,7 @@ class PbgTasks {
|
|||||||
item.function_type,
|
item.function_type,
|
||||||
item.consultation_type,
|
item.consultation_type,
|
||||||
item.due_date,
|
item.due_date,
|
||||||
|
item.id,
|
||||||
]),
|
]),
|
||||||
total: (data) => data.meta.total,
|
total: (data) => data.meta.total,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ class SyncronizeTask {
|
|||||||
name: "Actions",
|
name: "Actions",
|
||||||
width: "120px",
|
width: "120px",
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
console.log("cell data", cell);
|
|
||||||
return gridjs.html(`
|
return gridjs.html(`
|
||||||
<div class="d-flex justify-items-end gap-10">
|
<div class="d-flex justify-items-end gap-10">
|
||||||
<a href="/settings/general/${cell}/edit" class="btn btn-yellow me-2">Update</a>
|
<a href="/settings/general/${cell}/edit" class="btn btn-yellow me-2">Update</a>
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
//
|
||||||
|
// circle.scss
|
||||||
|
//
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--circle-color: #c97a04; /* Default warna lingkaran */
|
--circle-color: #c97a04; /* Default warna lingkaran */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,8 +44,6 @@
|
|||||||
@import "components/type";
|
@import "components/type";
|
||||||
@import "components/tooltip";
|
@import "components/tooltip";
|
||||||
@import "components/widgets";
|
@import "components/widgets";
|
||||||
|
|
||||||
// custom components
|
|
||||||
@import "components/circle";
|
@import "components/circle";
|
||||||
|
|
||||||
// Plugin
|
// Plugin
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
@include('layouts.partials/page-title', ['title' => 'Dashboards', 'subtitle' => 'DASHBOARD PIMPINAN'])
|
@include('layouts.partials/page-title', ['title' => 'Dashboards', 'subtitle' => 'Dashboard Pimpinan'])
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.square{
|
.square{
|
||||||
@@ -32,9 +32,29 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
background: linear-gradient(to top left, transparent calc(50% - 2px), black, transparent calc(50% + 2px));
|
background: linear-gradient(to top left, transparent calc(50% - 2px), black, transparent calc(50% + 2px));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#dashboard-fixed-wrapper {
|
||||||
|
background-image:url('/images/bg-dashboard.jpg');background-size: cover;background-position: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dashboard-fixed-wrapper::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(255, 255, 255, 0.7); /* Black overlay with 50% opacity */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="dashboard-fixed-wrapper" class="row">
|
<div id="dashboard-fixed-wrapper" class="row">
|
||||||
|
<h2 style="margin-top:30px;margin-left:15px;color:#911701">
|
||||||
|
<span style="float:right;font-size:14px;margin-right:25px;color:black">Terakhir di update - {{$latest_created}}</span>
|
||||||
|
ANALISA BIG DATA PROSES PBG <br>
|
||||||
|
MELALUI APLIKASI SIBEDAS PBG
|
||||||
|
|
||||||
|
</h2>
|
||||||
<div id="dashboard-fixed-container" style="width:1110px;height:770px;position:relative;margin:auto;">
|
<div id="dashboard-fixed-container" style="width:1110px;height:770px;position:relative;margin:auto;">
|
||||||
@component('components.circle', [
|
@component('components.circle', [
|
||||||
'document_title' => 'Kekurangan Potensi',
|
'document_title' => 'Kekurangan Potensi',
|
||||||
@@ -83,7 +103,7 @@
|
|||||||
@component('components.circle', [
|
@component('components.circle', [
|
||||||
'document_title' => 'Perkiraan Potensi PBG Dari Tata Ruang',
|
'document_title' => 'Perkiraan Potensi PBG Dari Tata Ruang',
|
||||||
'document_color' => '#bf04bc',
|
'document_color' => '#bf04bc',
|
||||||
'document_type' => 'Berkas',
|
'document_type' => '',
|
||||||
'document_id' => 'chart-potensi-tata-ruang',
|
'document_id' => 'chart-potensi-tata-ruang',
|
||||||
'visible_small_circle' => true,
|
'visible_small_circle' => true,
|
||||||
'style' => 'left:600px;'
|
'style' => 'left:600px;'
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
@include('layouts.partials/page-title', ['title' => 'Darkone', 'subtitle' => 'Dashboard'])
|
@include('layouts.partials/page-title', ['title' => 'Darkone', 'subtitle' => 'Dashboard PBG'])
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- Card 1 -->
|
<!-- Card 1 -->
|
||||||
@@ -11,8 +11,8 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<p class="text-muted mb-0 text-truncate">Total Income</p>
|
<p class="text-muted mb-0 text-truncate">Target PAD</p>
|
||||||
<h3 class="text-dark mt-2 mb-0">$78.8k</h3>
|
<h4 class="text-dark mt-2 mb-0">33.200.000.000</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -33,8 +33,8 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<p class="text-muted mb-0 text-truncate">New Users</p>
|
<p class="text-muted mb-0 text-truncate">Total Potensi Berkas</p>
|
||||||
<h3 class="text-dark mt-2 mb-0">2,150</h3>
|
<h4 class="text-dark mt-2 mb-0">10.080.738.057</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -55,8 +55,8 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<p class="text-muted mb-0 text-truncate">Orders</p>
|
<p class="text-muted mb-0 text-truncate">Total Berkas Terverifikasi</p>
|
||||||
<h3 class="text-dark mt-2 mb-0">1,784</h3>
|
<h4 class="text-dark mt-2 mb-0">1.555.064.633</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -77,8 +77,8 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<p class="text-muted mb-0 text-truncate">Conversion Rate</p>
|
<p class="text-muted mb-0 text-truncate">Kekurangan Potensi</p>
|
||||||
<h3 class="text-dark mt-2 mb-0">12.3%</h3>
|
<h4 class="text-dark mt-2 mb-0">23.113.261.943</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="card card-height-100">
|
<div class="card card-height-100">
|
||||||
<div class="card-header d-flex align-items-center justify-content-between gap-2">
|
<div class="card-header d-flex align-items-center justify-content-between gap-2">
|
||||||
<h4 class=" mb-0 flex-grow-1 mb-0">Revenue</h4>
|
<h4 class=" mb-0 flex-grow-1 mb-0">Pemenuhan Target PAD</h4>
|
||||||
<div>
|
<div>
|
||||||
<button type="button" class="btn btn-sm btn-outline-light">ALL</button>
|
<button type="button" class="btn btn-sm btn-outline-light">ALL</button>
|
||||||
<button type="button" class="btn btn-sm btn-outline-light">1M</button>
|
<button type="button" class="btn btn-sm btn-outline-light">1M</button>
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="card card-height-100">
|
<div class="card card-height-100">
|
||||||
<div class="card-header d-flex align-items-center justify-content-between gap-2">
|
<div class="card-header d-flex align-items-center justify-content-between gap-2">
|
||||||
<h4 class="card-title flex-grow-1 mb-0">Sales By Category</h4>
|
<h4 class="card-title flex-grow-1 mb-0">Berkas Belum Lengkap</h4>
|
||||||
<div>
|
<div>
|
||||||
<button type="button" class="btn btn-sm btn-outline-light">ALL</button>
|
<button type="button" class="btn btn-sm btn-outline-light">ALL</button>
|
||||||
<button type="button" class="btn btn-sm btn-outline-light">1M</button>
|
<button type="button" class="btn btn-sm btn-outline-light">1M</button>
|
||||||
@@ -139,35 +139,25 @@
|
|||||||
<thead class="bg-light bg-opacity-50 thead-sm">
|
<thead class="bg-light bg-opacity-50 thead-sm">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="py-1">
|
<th class="py-1">
|
||||||
Category
|
KETEGORI
|
||||||
</th>
|
</th>
|
||||||
<th class="py-1">Orders</th>
|
<th class="py-1">NILAI</th>
|
||||||
<th class="py-1">Perc.</th>
|
<th class="py-1">PERSENTASE</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Grocery</td>
|
<td>NON USAHA</td>
|
||||||
<td>187,232</td>
|
<td>187,232</td>
|
||||||
<td>
|
<td>
|
||||||
48.63%
|
48.63%
|
||||||
<span class="badge badge-soft-success float-end">2.5% Up</span>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Electonics</td>
|
<td>USAHA</td>
|
||||||
<td>126,874</td>
|
<td>126,874</td>
|
||||||
<td>
|
<td>
|
||||||
36.08%
|
36.08%
|
||||||
<span class="badge badge-soft-success float-end">8.5% Up</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Other</td>
|
|
||||||
<td>90,127</td>
|
|
||||||
<td>
|
|
||||||
23.41%
|
|
||||||
<span class="badge badge-soft-danger float-end">10.98% Down</span>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -183,7 +173,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div
|
<div
|
||||||
class="d-flex card-header justify-content-between align-items-center border-bottom border-dashed">
|
class="d-flex card-header justify-content-between align-items-center border-bottom border-dashed">
|
||||||
<h4 class="card-title mb-0">Sessions by Country</h4>
|
<h4 class="card-title mb-0">SEBARAN DATA</h4>
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle btn btn-sm btn-outline-light"
|
<a href="#" class="dropdown-toggle btn btn-sm btn-outline-light"
|
||||||
data-bs-toggle="dropdown" aria-expanded="false">
|
data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
@@ -215,7 +205,7 @@
|
|||||||
<div class="col-xl-6">
|
<div class="col-xl-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header d-flex justify-content-between align-items-center">
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
<h4 class="card-title mb-0">New Accounts</h4>
|
<h4 class="card-title mb-0">Baru Di Update</h4>
|
||||||
<a href="#!" class="btn btn-sm btn-light">
|
<a href="#!" class="btn btn-sm btn-light">
|
||||||
View All
|
View All
|
||||||
</a>
|
</a>
|
||||||
@@ -226,11 +216,11 @@
|
|||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover mb-0 table-centered">
|
<table class="table table-hover mb-0 table-centered">
|
||||||
<thead>
|
<thead>
|
||||||
<th class="py-1">ID</th>
|
<th class="py-1">No. Registrasi</th>
|
||||||
<th class="py-1">Date</th>
|
<th class="py-1">Tanggal</th>
|
||||||
<th class="py-1">User</th>
|
<th class="py-1">Pemohon</th>
|
||||||
<th class="py-1">Account</th>
|
<th class="py-1">Status</th>
|
||||||
<th class="py-1">Username</th>
|
<th class="py-1">Pemilik</th>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -313,7 +303,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header d-flex justify-content-between align-items-center">
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
<h4 class="card-title mb-0">
|
<h4 class="card-title mb-0">
|
||||||
Recent Transactions
|
Pending Lama
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<a href="#!" class="btn btn-sm btn-light">
|
<a href="#!" class="btn btn-sm btn-light">
|
||||||
@@ -326,19 +316,19 @@
|
|||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover mb-0 table-centered">
|
<table class="table table-hover mb-0 table-centered">
|
||||||
<thead>
|
<thead>
|
||||||
<th class="py-1">ID</th>
|
<th class="py-1">No. Registrasi</th>
|
||||||
<th class="py-1">Date</th>
|
<th class="py-1">Tanggal</th>
|
||||||
<th class="py-1">Amount</th>
|
<th class="py-1">Retribusi</th>
|
||||||
<th class="py-1">Status</th>
|
<th class="py-1">Status</th>
|
||||||
<th class="py-1">
|
<th class="py-1">
|
||||||
Description
|
Catatan
|
||||||
</th>
|
</th>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>#98521</td>
|
<td>#98521</td>
|
||||||
<td>24 April, 2024</td>
|
<td>24 April, 2024</td>
|
||||||
<td>$120.55</td>
|
<td>9.000.120.55</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="badge bg-success">Cr</span>
|
<span class="badge bg-success">Cr</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -347,7 +337,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>#20158</td>
|
<td>#20158</td>
|
||||||
<td>24 April, 2024</td>
|
<td>24 April, 2024</td>
|
||||||
<td>$9.68</td>
|
<td>6.000.009.68</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="badge bg-success">Cr</span>
|
<span class="badge bg-success">Cr</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -356,7 +346,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>#36589</td>
|
<td>#36589</td>
|
||||||
<td>20 April, 2024</td>
|
<td>20 April, 2024</td>
|
||||||
<td>$105.22</td>
|
<td>700.105.22</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="badge bg-danger">Dr</span>
|
<span class="badge bg-danger">Dr</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -365,7 +355,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>#95362</td>
|
<td>#95362</td>
|
||||||
<td>18 April, 2024</td>
|
<td>18 April, 2024</td>
|
||||||
<td>$80.59</td>
|
<td>3.236.580.59</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="badge bg-success">Cr</span>
|
<span class="badge bg-success">Cr</span>
|
||||||
</td>
|
</td>
|
||||||
@@ -374,7 +364,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>#75214</td>
|
<td>#75214</td>
|
||||||
<td>18 April, 2024</td>
|
<td>18 April, 2024</td>
|
||||||
<td>$750.95</td>
|
<td>555.750.95</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="badge bg-danger">Dr</span>
|
<span class="badge bg-danger">Dr</span>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -29,13 +29,11 @@
|
|||||||
<div class="collapse" id="sidebarDashboard">
|
<div class="collapse" id="sidebarDashboard">
|
||||||
<ul class="nav sub-navbar-nav">
|
<ul class="nav sub-navbar-nav">
|
||||||
<li class="sub-nav-item">
|
<li class="sub-nav-item">
|
||||||
<a class="sub-nav-link" href="{{ route ('home' ) }}">Pimpinan</a>
|
<a class="sub-nav-link" href="{{ route ('home' ) }}">Dashboard Pimpinan</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
<li class="sub-nav-item">
|
<li class="sub-nav-item">
|
||||||
<a class="sub-nav-link" href="{{ route ('home' ) }}">Dashboard 2</a>
|
<a class="sub-nav-link" href="{{ route ('dashboards.pbg' ) }}">Dashboard PBG</a>
|
||||||
</li>
|
|
||||||
<li class="sub-nav-item">
|
|
||||||
<a class="sub-nav-link" href="{{ route ('home' ) }}">Dashboard 3</a>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,4 +2,10 @@
|
|||||||
|
|
||||||
@vite('resources/js/app.js')
|
@vite('resources/js/app.js')
|
||||||
|
|
||||||
@yield('scripts')
|
@yield('scripts')
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.GlobalConfig = {
|
||||||
|
apiHost: "{{config('app.api_url')}}"
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -17,16 +17,16 @@ class="authentication-bg"
|
|||||||
<div class="p-4">
|
<div class="p-4">
|
||||||
<div class="mx-auto mb-4 text-center">
|
<div class="mx-auto mb-4 text-center">
|
||||||
<div class="mx-auto text-center auth-logo">
|
<div class="mx-auto text-center auth-logo">
|
||||||
<a href="{{ route('home') }}" class="logo-dark">
|
<!-- <a href="{{ route('home') }}" class="logo-dark">
|
||||||
<img src="/images/logo-dark.png" height="32" alt="logo dark">
|
<img src="/images/simbg-dputr.png" height="200" width="100%" alt="dputr logo">
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="{{ route('home') }}" class="logo-light">
|
<a href="{{ route('home') }}" class="logo-light">
|
||||||
<img src="/images/logo-light.png" height="28" alt="logo light">
|
<img src="/images/simbg-dputr.png" height="200" width="100%" alt="dputr light">
|
||||||
</a>
|
</a> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<img src="/images/404.svg" alt="auth" height="250" class="mt-5 mb-3" />
|
<img src="/images/simbg-dputr.png" alt="auth" height="250" class="mt-5 mb-3" />
|
||||||
|
|
||||||
<h2 class="fs-22 lh-base">Page Not Found !</h2>
|
<h2 class="fs-22 lh-base">Page Not Found !</h2>
|
||||||
<p class="text-muted mt-1 mb-4">The page you're trying to reach seems to have gone <br /> missing in the digital wilderness.</p>
|
<p class="text-muted mt-1 mb-4">The page you're trying to reach seems to have gone <br /> missing in the digital wilderness.</p>
|
||||||
|
|||||||
@@ -0,0 +1,257 @@
|
|||||||
|
@extends('layouts.vertical', ['subtitle' => 'Detail'])
|
||||||
|
|
||||||
|
@section('css')
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
@include('layouts.partials/page-title', ['title' => 'Data', 'subtitle' => 'PBG'])
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<ul class="nav nav-tabs nav-justified">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#pbgTask" data-bs-toggle="tab" aria-expanded="true" class="nav-link active">
|
||||||
|
<span class="d-none d-sm-block">PBG Task</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#pbgTaskRetributions" data-bs-toggle="tab" aria-expanded="false"
|
||||||
|
class="nav-link">
|
||||||
|
<span class="d-none d-sm-block">PBG Task Retributions</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#pbgTaskIntegration" data-bs-toggle="tab" aria-expanded="false" class="nav-link">
|
||||||
|
<span class="d-none d-sm-block">PBG Task Index Integrations</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#pbgTaskPrasarana" data-bs-toggle="tab" aria-expanded="false" class="nav-link">
|
||||||
|
<span class="d-none d-sm-block">PBG Task Prasarana</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active" id="pbgTask">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>{{$data->name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Owner Name</dt>
|
||||||
|
<dd>{{$data->owner_name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Aplication Type Name</dt>
|
||||||
|
<dd>{{$data->application_type_name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Condition</dt>
|
||||||
|
<dd>{{$data->condition}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Registration Number</dt>
|
||||||
|
<dd>{{$data->registration_number}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Document Number</dt>
|
||||||
|
<dd>{{$data->document_number}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Address</dt>
|
||||||
|
<dd>{{$data->address}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Status Name</dt>
|
||||||
|
<dd>{{$data->status_name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>SLF Status Name</dt>
|
||||||
|
<dd>{{$data->slf_status_name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Function Type</dt>
|
||||||
|
<dd>{{$data->function_type}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Consultation Type</dt>
|
||||||
|
<dd>{{$data->consultation_type}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Due Date</dt>
|
||||||
|
<dd>{{$data->due_date}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Task Created At</dt>
|
||||||
|
<dd>{{$data->task_created_at}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane" id="pbgTaskRetributions">
|
||||||
|
@if ($data->pbg_task_retributions)
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Luas Bangunan</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->luas_bangunan}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Lokalitas</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->indeks_lokalitas}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Wilayah SHST</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->wilayah_shst}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Kegiatan Name</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->kegiatan_name}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Nilai SHST</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->nilai_shst}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Integrasi</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->indeks_terintegrasi}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Bg Terbangun</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->indeks_bg_terbangun}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Nilai Retribusi Bangunan</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->nilai_retribusi_bangunan}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Nilai Prasarana</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->nilai_prasarana}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>PBG Dokumen</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->pbg_document}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Underpayment</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->underpayment}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>SKRD Amount</dt>
|
||||||
|
<dd>{{$data->pbg_task_retributions->skrd_amount}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
Data Not Available
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane" id="pbgTaskIntegration">
|
||||||
|
@if ($data->pbg_task_index_integrations)
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Fungsi Bangunan</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->indeks_fungsi_bangunan}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Parameter Kompleksitas</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->indeks_parameter_kompleksitas}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Parameter Permanensi</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->indeks_parameter_permanensi}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Paramter Ketinggian</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->indeks_parameter_ketinggian}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Faktor Kepemilikan</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->faktor_kepemilikan}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Indeks Terintegrasi</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->indeks_terintegrasi}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Total</dt>
|
||||||
|
<dd>{{$data->pbg_task_index_integrations->total}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
Data Not Available
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane" id="pbgTaskPrasarana">
|
||||||
|
<div class="row d-flex flex-warp gap-3 justify-content-center">
|
||||||
|
@if ($data->pbg_task_retributions && $data->pbg_task_retributions->pbg_task_prasarana)
|
||||||
|
@foreach ($data->pbg_task_retributions->pbg_task_prasarana as $prasarana)
|
||||||
|
<div class="border p-3 rounded shadow-sm col-md-4">
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Prasarana Type</dt>
|
||||||
|
<dd>{{$prasarana->prasarana_type}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Building Type</dt>
|
||||||
|
<dd>{{$prasarana->building_type}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Total</dt>
|
||||||
|
<dd>{{$prasarana->total}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Quantity</dt>
|
||||||
|
<dd>{{$prasarana->quantity}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Unit</dt>
|
||||||
|
<dd>{{$prasarana->unit}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Index Prasarana</dt>
|
||||||
|
<dd>{{$prasarana->index_prasarana}}</dd>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<dt>Created At</dt>
|
||||||
|
<dd>{{$prasarana->created_at}}</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@else
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
Data Not Available
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('scripts')
|
||||||
|
@endsection
|
||||||
+5
-6
@@ -52,12 +52,11 @@ Route::group(['middleware' => 'auth:sanctum'], function (){
|
|||||||
|
|
||||||
// sync pbg google sheet
|
// sync pbg google sheet
|
||||||
Route::get('/sync-pbg-task-google-sheet', [PbgTaskController::class, 'syncPbgFromGoogleSheet'])->name('pbg-task.sync-google-sheet');
|
Route::get('/sync-pbg-task-google-sheet', [PbgTaskController::class, 'syncPbgFromGoogleSheet'])->name('pbg-task.sync-google-sheet');
|
||||||
|
Route::apiResource('/api-google-sheet', GoogleSheetController::class);
|
||||||
|
Route::get('/sync-task', [SyncronizeController::class, 'syncPbgTask'])->name('api.task');
|
||||||
|
Route::get('/get-user-token', [SyncronizeController::class, 'getUserToken'])->name('api.task.token');
|
||||||
|
Route::get('/get-index-integration-retribution/{uuid}', [SyncronizeController::class, 'syncIndexIntegration'])->name('api.task.inntegration');
|
||||||
|
Route::get('/sync-task-submit/{uuid}', [SyncronizeController::class, 'syncTaskDetailSubmit'])->name('api.task.submit');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::apiResource('/api-google-sheet', GoogleSheetController::class);
|
|
||||||
|
|
||||||
|
|
||||||
Route::get('/sync-task', [SyncronizeController::class, 'syncPbgTask'])->name('api.task');
|
|
||||||
Route::get('/get-user-token', [SyncronizeController::class, 'getUserToken'])->name('api.task.token');
|
|
||||||
Route::get('/get-index-integration-retribution/{uuid}', [SyncronizeController::class, 'syncIndexIntegration'])->name('api.task.inntegration');
|
|
||||||
Route::get('/sync-task-submit/{uuid}', [SyncronizeController::class, 'syncTaskDetailSubmit'])->name('api.task.submit');
|
|
||||||
@@ -20,6 +20,10 @@ Route::group(['middleware' => 'auth'], function(){
|
|||||||
Route::group(['prefix' => '/dashboards'], function(){
|
Route::group(['prefix' => '/dashboards'], function(){
|
||||||
Route::get('/bigdata', [BigDataController::class, 'index'])->name('home');
|
Route::get('/bigdata', [BigDataController::class, 'index'])->name('home');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::group(['prefix' => '/dashboards'], function(){
|
||||||
|
Route::get('/dashboard-pbg', [BigDataController::class, 'pbg'])->name('dashboards.pbg');
|
||||||
|
});
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
Route::group(['prefix' => '/settings'], function(){
|
Route::group(['prefix' => '/settings'], function(){
|
||||||
|
|||||||
-1458
File diff suppressed because it is too large
Load Diff
+24
-4
@@ -1,13 +1,26 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from "vite";
|
||||||
import laravel from 'laravel-vite-plugin';
|
import laravel from "laravel-vite-plugin";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
build: {
|
||||||
|
outDir: "public/build",
|
||||||
|
manifest: true, // Menghasilkan manifest.json untuk Laravel
|
||||||
|
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
"@": path.resolve(__dirname, "resources/js"),
|
||||||
|
},
|
||||||
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
laravel({
|
laravel({
|
||||||
input: [
|
input: [
|
||||||
//css
|
//css
|
||||||
"resources/scss/icons.scss",
|
"resources/scss/icons.scss",
|
||||||
"resources/scss/style.scss",
|
"resources/scss/style.scss",
|
||||||
|
"resources/scss/components/_circle.scss",
|
||||||
|
|
||||||
"node_modules/quill/dist/quill.snow.css",
|
"node_modules/quill/dist/quill.snow.css",
|
||||||
"node_modules/quill/dist/quill.bubble.css",
|
"node_modules/quill/dist/quill.bubble.css",
|
||||||
"node_modules/flatpickr/dist/flatpickr.min.css",
|
"node_modules/flatpickr/dist/flatpickr.min.css",
|
||||||
@@ -16,7 +29,6 @@ export default defineConfig({
|
|||||||
"node_modules/flatpickr/dist/themes/dark.css",
|
"node_modules/flatpickr/dist/themes/dark.css",
|
||||||
"node_modules/gridjs/dist/theme/mermaid.min.css",
|
"node_modules/gridjs/dist/theme/mermaid.min.css",
|
||||||
|
|
||||||
|
|
||||||
//js
|
//js
|
||||||
"resources/js/app.js",
|
"resources/js/app.js",
|
||||||
"resources/js/config.js",
|
"resources/js/config.js",
|
||||||
@@ -31,8 +43,16 @@ export default defineConfig({
|
|||||||
"resources/js/pages/maps-spain.js",
|
"resources/js/pages/maps-spain.js",
|
||||||
"resources/js/pages/maps-russia.js",
|
"resources/js/pages/maps-russia.js",
|
||||||
"resources/js/pages/maps-iraq.js",
|
"resources/js/pages/maps-iraq.js",
|
||||||
"resources/js/pages/maps-canada.js"
|
"resources/js/pages/maps-canada.js",
|
||||||
|
|
||||||
|
//js-additional
|
||||||
|
"resources/js/dashboards/bigdata.js",
|
||||||
|
"resources/js/master/users/users.js",
|
||||||
|
"resources/js/settings/syncronize/syncronize.js",
|
||||||
|
"resources/js/data-settings/index.js",
|
||||||
|
"resources/js/pbg-task/index.js",
|
||||||
|
"resources/js/settings/general/general-settings.js",
|
||||||
|
"resources/js/tables/common-table.js"
|
||||||
],
|
],
|
||||||
refresh: true,
|
refresh: true,
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user