fix datatable using token api and paginate when searching, fix skrd_amount column to decimal 20
This commit is contained in:
@@ -8,6 +8,7 @@ use App\Http\Resources\GlobalSettingResource;
|
|||||||
use App\Models\GlobalSetting;
|
use App\Models\GlobalSetting;
|
||||||
use App\Traits\GlobalApiResponse;
|
use App\Traits\GlobalApiResponse;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class GlobalSettingsController extends Controller
|
class GlobalSettingsController extends Controller
|
||||||
{
|
{
|
||||||
@@ -15,9 +16,13 @@ class GlobalSettingsController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$query = GlobalSetting::query()->orderBy('id','desc');
|
$query = GlobalSetting::query()->orderBy('id','desc');
|
||||||
|
if($request->has('search') && !empty($request->get("search"))){
|
||||||
|
$query->where('key', 'LIKE', '%'.$request->get('search').'%');
|
||||||
|
}
|
||||||
|
|
||||||
return GlobalSettingResource::collection($query->paginate());
|
return GlobalSettingResource::collection($query->paginate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class ImportDatasourceController extends Controller
|
|||||||
$search = $request->get("search");
|
$search = $request->get("search");
|
||||||
$query->where('status', 'like', "%".$search."%");
|
$query->where('status', 'like', "%".$search."%");
|
||||||
}
|
}
|
||||||
return ImportDatasourceResource::collection($query->paginate(10));
|
return ImportDatasourceResource::collection($query->paginate());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -12,9 +12,12 @@ class RequestAssignmentController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$query = PbgTask::query();
|
$query = PbgTask::query();
|
||||||
|
if($request->has('search') && !empty($request->get("search"))){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->get('search').'%');
|
||||||
|
}
|
||||||
return RequestAssignmentResouce::collection($query->paginate());
|
return RequestAssignmentResouce::collection($query->paginate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,15 @@ namespace App\Http\Controllers\Api;
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\Auth\LoginRequest;
|
use App\Http\Requests\Auth\LoginRequest;
|
||||||
|
use App\Http\Resources\UserResource;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\GlobalApiResponse;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class UsersController extends Controller
|
class UsersController extends Controller
|
||||||
{
|
{
|
||||||
|
use GlobalApiResponse;
|
||||||
public function login(LoginRequest $request){
|
public function login(LoginRequest $request){
|
||||||
$user = User::where('email', $request->email)->first();
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
@@ -21,7 +24,15 @@ class UsersController extends Controller
|
|||||||
|
|
||||||
return response(['user' => $user, 'token' => $token], 200);
|
return response(['user' => $user, 'token' => $token], 200);
|
||||||
}
|
}
|
||||||
public function index(){
|
public function index(Request $request){
|
||||||
return response()->json(User::all());
|
$query = User::query();
|
||||||
|
if($request->has('search') && !empty($request->get("search"))){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->get('search').'%');
|
||||||
|
}
|
||||||
|
return UserResource::collection($query->paginate());
|
||||||
|
}
|
||||||
|
public function logout(Request $request){
|
||||||
|
$request->user()->tokens()->delete();
|
||||||
|
return response()->json(['message' => 'logged out successfully']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,15 @@ class AuthenticatedSessionController extends Controller
|
|||||||
|
|
||||||
$request->session()->regenerate();
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
// Ambil user yang sedang login
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
// Buat token untuk API
|
||||||
|
$token = $user->createToken(env('APP_KEY'))->plainTextToken;
|
||||||
|
|
||||||
|
// Simpan token di session (bisa digunakan di JavaScript)
|
||||||
|
session(['api_token' => $token]);
|
||||||
|
|
||||||
return redirect()->intended(RouteServiceProvider::HOME);
|
return redirect()->intended(RouteServiceProvider::HOME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,12 +53,16 @@ class AuthenticatedSessionController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function destroy(Request $request)
|
public function destroy(Request $request)
|
||||||
{
|
{
|
||||||
|
if($request->user()){
|
||||||
|
$request->user()->tokens()->delete();
|
||||||
|
}
|
||||||
|
|
||||||
Auth::guard('web')->logout();
|
Auth::guard('web')->logout();
|
||||||
|
|
||||||
$request->session()->invalidate();
|
$request->session()->invalidate();
|
||||||
|
|
||||||
$request->session()->regenerateToken();
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
return redirect('/');
|
return redirect()->route('login');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,18 @@ use Illuminate\Http\Request;
|
|||||||
use Illuminate\Validation\Rules;
|
use Illuminate\Validation\Rules;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\GlobalApiResponse;
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
|
|
||||||
class UsersController extends Controller
|
class UsersController extends Controller
|
||||||
{
|
{
|
||||||
|
use GlobalApiResponse;
|
||||||
|
public function allUsers(Request $request){
|
||||||
|
$users = User::all();
|
||||||
|
return $this->resSuccess($users);
|
||||||
|
}
|
||||||
public function index(){
|
public function index(){
|
||||||
$users = User::paginate(20);
|
$users = User::paginate();
|
||||||
return view('master.users.index', compact('users'));
|
return view('master.users.index', compact('users'));
|
||||||
}
|
}
|
||||||
public function create(){
|
public function create(){
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class RequestAssignmentResouce extends JsonResource
|
|||||||
public function toArray(Request $request): array
|
public function toArray(Request $request): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
'uuid' => $this->uuid,
|
'uuid' => $this->uuid,
|
||||||
'name' => $this->name,
|
'name' => $this->name,
|
||||||
'owner_name' => $this->owner_name,
|
'owner_name' => $this->owner_name,
|
||||||
|
|||||||
28
app/Http/Resources/UserResource.php
Normal file
28
app/Http/Resources/UserResource.php
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class UserResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function toArray(Request $request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' =>$this->id,
|
||||||
|
'name' =>$this->name,
|
||||||
|
'email' =>$this->email,
|
||||||
|
'created_at' =>$this->created_at->toDateTimeString(),
|
||||||
|
'updated_at' =>$this->updated_at->toDateTimeString(),
|
||||||
|
'position' => $this->position,
|
||||||
|
'firstname' => $this->firstname,
|
||||||
|
'lastname' => $this->lastname,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const HOME = '/home';
|
public const HOME = '/dashboards/bigdata';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define your route model bindings, pattern filters, and other route configuration.
|
* Define your route model bindings, pattern filters, and other route configuration.
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ class ServiceSIMBG
|
|||||||
'page' => $currentPage,
|
'page' => $currentPage,
|
||||||
'size' => 20,
|
'size' => 20,
|
||||||
'sort' => 'ASC',
|
'sort' => 'ASC',
|
||||||
'type' => 'task',
|
'type' => 'task'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$url = "/api/pbg/v1/list/?" . $queryParams;
|
$url = "/api/pbg/v1/list/?" . $queryParams;
|
||||||
@@ -192,15 +192,15 @@ class ServiceSIMBG
|
|||||||
$this->syncTaskDetailSubmit($item['uid']);
|
$this->syncTaskDetailSubmit($item['uid']);
|
||||||
$savedCount++;
|
$savedCount++;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
$importDatasource->update([
|
||||||
|
'status' => ImportDatasourceStatus::Failed->value,
|
||||||
|
'message' => 'failed to save',
|
||||||
|
'response_body' => $item
|
||||||
|
]);
|
||||||
Log::error("Failed to process task", [
|
Log::error("Failed to process task", [
|
||||||
'error' => $e->getMessage(),
|
'error' => $e->getMessage(),
|
||||||
'task' => $item,
|
'task' => $item,
|
||||||
]);
|
]);
|
||||||
$importDatasource->update([
|
|
||||||
'status' => ImportDatasourceStatus::Failed->value,
|
|
||||||
'message' => $e->getMessage(),
|
|
||||||
'response_body' => $item
|
|
||||||
]);
|
|
||||||
$failedCount++;
|
$failedCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ return [
|
|||||||
|
|
||||||
'max_age' => 0,
|
'max_age' => 0,
|
||||||
|
|
||||||
'supports_credentials' => false,
|
'supports_credentials' => true,
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?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_retributions', function (Blueprint $table) {
|
||||||
|
$table->decimal('skrd_amount',20,2)->nullable()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('pbg_task_retributions', function (Blueprint $table) {
|
||||||
|
$table->decimal('skrd_amount', 20,2)->nullable()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
60
resources/js/master/users/users.js
Normal file
60
resources/js/master/users/users.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
||||||
|
import gridjs from "gridjs/dist/gridjs.umd.js";
|
||||||
|
import "gridjs/dist/gridjs.umd.js";
|
||||||
|
import GlobalConfig from "../../global-config";
|
||||||
|
|
||||||
|
class UsersTable {
|
||||||
|
init() {
|
||||||
|
this.initTableUsers();
|
||||||
|
}
|
||||||
|
|
||||||
|
initTableUsers() {
|
||||||
|
new Grid({
|
||||||
|
columns: [
|
||||||
|
"ID",
|
||||||
|
"Name",
|
||||||
|
"Email",
|
||||||
|
"Firstname",
|
||||||
|
"Lastname",
|
||||||
|
"Position",
|
||||||
|
],
|
||||||
|
pagination: {
|
||||||
|
limit: 15,
|
||||||
|
server: {
|
||||||
|
url: (prev, page) =>
|
||||||
|
`${prev}${prev.includes("?") ? "&" : "?"}page=${
|
||||||
|
page + 1
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
search: {
|
||||||
|
server: {
|
||||||
|
url: (prev, keyword) => `${prev}?search=${keyword}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
url: `${GlobalConfig.apiHost}/api/users`,
|
||||||
|
credentials: "include",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${localStorage.getItem("token")}`,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
then: (data) =>
|
||||||
|
data.data.map((item) => [
|
||||||
|
item.id,
|
||||||
|
item.name,
|
||||||
|
item.email,
|
||||||
|
item.firstname,
|
||||||
|
item.lastname,
|
||||||
|
item.position,
|
||||||
|
]),
|
||||||
|
total: (data) => data.meta.total,
|
||||||
|
},
|
||||||
|
}).render(document.getElementById("table-users"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", function (e) {
|
||||||
|
new UsersTable().init();
|
||||||
|
});
|
||||||
67
resources/js/request-assignment/request-assignment.js
Normal file
67
resources/js/request-assignment/request-assignment.js
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
||||||
|
import "gridjs/dist/gridjs.umd.js";
|
||||||
|
import GlobalConfig from "../global-config";
|
||||||
|
|
||||||
|
class RequestAssignment {
|
||||||
|
init() {
|
||||||
|
this.initTableRequestAssignment();
|
||||||
|
}
|
||||||
|
|
||||||
|
initTableRequestAssignment() {
|
||||||
|
new Grid({
|
||||||
|
columns: [
|
||||||
|
"ID",
|
||||||
|
"Name",
|
||||||
|
"Condition",
|
||||||
|
"Registration Number",
|
||||||
|
"Document Number",
|
||||||
|
"Address",
|
||||||
|
"Status",
|
||||||
|
"Function Type",
|
||||||
|
"Consultation Type",
|
||||||
|
"Due Date",
|
||||||
|
],
|
||||||
|
search: {
|
||||||
|
server: {
|
||||||
|
url: (prev, keyword) => `${prev}?search=${keyword}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pagination: {
|
||||||
|
limit: 15,
|
||||||
|
server: {
|
||||||
|
url: (prev, page) =>
|
||||||
|
`${prev}${prev.includes("?") ? "&" : "?"}page=${
|
||||||
|
page + 1
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
server: {
|
||||||
|
url: `${GlobalConfig.apiHost}/api/request-assignments`,
|
||||||
|
credentials: "include",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${localStorage.getItem("token")}`,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
then: (data) =>
|
||||||
|
data.data.map((item) => [
|
||||||
|
item.id,
|
||||||
|
item.name,
|
||||||
|
item.condition,
|
||||||
|
item.registration_number,
|
||||||
|
item.document_number,
|
||||||
|
item.address,
|
||||||
|
item.status_name,
|
||||||
|
item.function_type,
|
||||||
|
item.consultation_type,
|
||||||
|
item.due_date,
|
||||||
|
]),
|
||||||
|
total: (data) => data.meta.total,
|
||||||
|
},
|
||||||
|
}).render(document.getElementById("table-request-assignment"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", function (e) {
|
||||||
|
new RequestAssignment().init();
|
||||||
|
});
|
||||||
@@ -29,24 +29,26 @@ class SyncronizeTask {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
search: {
|
||||||
|
server: {
|
||||||
|
url: (prev, keyword) => `${prev}?search=${keyword}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
pagination: {
|
pagination: {
|
||||||
limit: 15,
|
limit: 15,
|
||||||
server: {
|
server: {
|
||||||
url: (prev, page, limit) => `${prev}?page=${page}`,
|
url: (prev, page) =>
|
||||||
|
`${prev}${prev.includes("?") ? "&" : "?"}page=${
|
||||||
|
page + 1
|
||||||
|
}`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
sort: true,
|
sort: true,
|
||||||
search: {
|
|
||||||
server: {
|
|
||||||
url: (prev, page, keyword) =>
|
|
||||||
`${prev}?page=${page}&search=${keyword}`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
server: {
|
server: {
|
||||||
url: `${GlobalConfig.apiHost}/api/global-settings`,
|
url: `${GlobalConfig.apiHost}/api/global-settings`,
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${document
|
Authorization: `Bearer ${document
|
||||||
.querySelector('meta[name="csrf-token"]')
|
.querySelector('meta[name="api-token"]')
|
||||||
.getAttribute("content")}`,
|
.getAttribute("content")}`,
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
},
|
},
|
||||||
@@ -59,6 +61,7 @@ class SyncronizeTask {
|
|||||||
item.created_at,
|
item.created_at,
|
||||||
item.id,
|
item.id,
|
||||||
]),
|
]),
|
||||||
|
total: (data) => data.meta.total,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
table.render(document.getElementById("general-setting-table"));
|
table.render(document.getElementById("general-setting-table"));
|
||||||
@@ -100,9 +103,6 @@ class SyncronizeTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
document.addEventListener("click", function (e) {
|
|
||||||
handleDelete(e); // Call the function on click event
|
|
||||||
});
|
|
||||||
document.addEventListener("DOMContentLoaded", function (e) {
|
document.addEventListener("DOMContentLoaded", function (e) {
|
||||||
new SyncronizeTask().init();
|
new SyncronizeTask().init();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,52 +1,67 @@
|
|||||||
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
||||||
import gridjs from 'gridjs/dist/gridjs.umd.js'
|
import gridjs from "gridjs/dist/gridjs.umd.js";
|
||||||
import 'gridjs/dist/gridjs.umd.js'
|
import "gridjs/dist/gridjs.umd.js";
|
||||||
import GlobalConfig from "../../global-config.js";
|
import GlobalConfig from "../../global-config.js";
|
||||||
|
|
||||||
class SyncronizeTask {
|
class SyncronizeTask {
|
||||||
init(){
|
init() {
|
||||||
this.initTableImportDatasources();
|
this.initTableImportDatasources();
|
||||||
this.onSyncSubmit();
|
this.onSyncSubmit();
|
||||||
}
|
}
|
||||||
initTableImportDatasources(){
|
initTableImportDatasources() {
|
||||||
new Grid({
|
new Grid({
|
||||||
columns: [
|
columns: ["ID", "Message", "Response", "Status", "Created"],
|
||||||
"ID", "Message", "Response", "Status", "Created",
|
search: {
|
||||||
],
|
server: {
|
||||||
pagination: {
|
url: (prev, keyword) => `${prev}?search=${keyword}`,
|
||||||
limit: 15,
|
},
|
||||||
server: {
|
},
|
||||||
url: (prev, page, limit) => `${prev}?page=${page}`
|
pagination: {
|
||||||
}
|
limit: 15,
|
||||||
},
|
server: {
|
||||||
sort: true,
|
url: (prev, page) =>
|
||||||
search: {
|
`${prev}${prev.includes("?") ? "&" : "?"}page=${
|
||||||
server: {
|
page + 1
|
||||||
url: (prev, page, keyword) => `${prev}?page=${page}&search=${keyword}`
|
}`,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
server: {
|
sort: true,
|
||||||
url: `${GlobalConfig.apiHost}/api/import-datasource`,
|
server: {
|
||||||
then: data => data.data.map((item) => [item.id, item.message, item.response_body, item.status, item.created_at])
|
url: `${GlobalConfig.apiHost}/api/import-datasource`,
|
||||||
}
|
headers: {
|
||||||
}).render(document.getElementById("table-import-datasources"));
|
Authorization: `Bearer ${document
|
||||||
}
|
.querySelector('meta[name="api-token"]')
|
||||||
onSyncSubmit(){
|
.getAttribute("content")}`,
|
||||||
const form = document.getElementById("sync-form");
|
"Content-Type": "application/json",
|
||||||
if(form){
|
},
|
||||||
form.addEventListener("submit", function (event) {
|
then: (data) =>
|
||||||
event.preventDefault(); // Prevent the default form submission
|
data.data.map((item) => [
|
||||||
|
item.id,
|
||||||
const button = document.getElementById("btn-sync-submit");
|
item.message,
|
||||||
if (button) {
|
item.response_body,
|
||||||
button.disabled = true;
|
item.status,
|
||||||
button.innerText = "Processing...";
|
item.created_at,
|
||||||
}
|
]),
|
||||||
form.submit();
|
total: (data) => data.meta.total,
|
||||||
});
|
},
|
||||||
|
}).render(document.getElementById("table-import-datasources"));
|
||||||
|
}
|
||||||
|
onSyncSubmit() {
|
||||||
|
const form = document.getElementById("sync-form");
|
||||||
|
if (form) {
|
||||||
|
form.addEventListener("submit", function (event) {
|
||||||
|
event.preventDefault(); // Prevent the default form submission
|
||||||
|
|
||||||
|
const button = document.getElementById("btn-sync-submit");
|
||||||
|
if (button) {
|
||||||
|
button.disabled = true;
|
||||||
|
button.innerText = "Processing...";
|
||||||
|
}
|
||||||
|
form.submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
document.addEventListener('DOMContentLoaded', function (e) {
|
document.addEventListener("DOMContentLoaded", function (e) {
|
||||||
new SyncronizeTask().init();
|
new SyncronizeTask().init();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,128 +1,70 @@
|
|||||||
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
import { Grid } from "gridjs/dist/gridjs.umd.js";
|
||||||
import gridjs from 'gridjs/dist/gridjs.umd.js'
|
import gridjs from "gridjs/dist/gridjs.umd.js";
|
||||||
import 'gridjs/dist/gridjs.umd.js'
|
import "gridjs/dist/gridjs.umd.js";
|
||||||
import GlobalConfig from "../global-config";
|
import GlobalConfig from "../global-config";
|
||||||
|
|
||||||
class CommonTable {
|
class CommonTable {
|
||||||
init() {
|
init() {
|
||||||
// this.CommonTableInit();
|
// this.CommonTableInit();
|
||||||
this.CommonTableInitWithFetchApi();
|
this.CommonTableInitWithFetchApi();
|
||||||
}
|
}
|
||||||
|
|
||||||
CommonTableInit() {
|
CommonTableInitWithFetchApi() {
|
||||||
new Grid({
|
fetch(`${GlobalConfig.apiHost}/api/users`)
|
||||||
columns: [
|
.then((response) => response.json())
|
||||||
{
|
.then((data) => {
|
||||||
name: 'ID',
|
console.log("check log response");
|
||||||
formatter: (function (cell) {
|
console.log(data.data);
|
||||||
return gridjs.html('<span class="fw-semibold">' + cell + '</span>');
|
new Grid({
|
||||||
})
|
columns: [
|
||||||
},
|
{
|
||||||
"Name",
|
name: "id",
|
||||||
{
|
formatter: function (cell) {
|
||||||
name: 'Email',
|
return gridjs.html(
|
||||||
formatter: (function (cell) {
|
'<span class="fw-semibold">' +
|
||||||
return gridjs.html('<a href="">' + cell + '</a>');
|
cell +
|
||||||
})
|
"</span>"
|
||||||
},
|
);
|
||||||
"Position", "Company", "Country",
|
},
|
||||||
{
|
},
|
||||||
name: 'Actions',
|
"name",
|
||||||
width: '120px',
|
{
|
||||||
formatter: (function (cell) {
|
name: "email",
|
||||||
return gridjs.html(`
|
formatter: function (cell) {
|
||||||
|
return gridjs.html(
|
||||||
|
'<a href="">' + cell + "</a>"
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"position",
|
||||||
|
"firstname",
|
||||||
|
"lastname",
|
||||||
|
{
|
||||||
|
name: "Actions",
|
||||||
|
width: "120px",
|
||||||
|
formatter: function (cell) {
|
||||||
|
return gridjs.html(`
|
||||||
<div class="d-flex justify-items-end gap-10">
|
<div class="d-flex justify-items-end gap-10">
|
||||||
<a href="#" class="text-primary text-decoration-underline me-2">Details</a>
|
<a href="#" class="text-primary text-decoration-underline me-2">Details</a>
|
||||||
<a href="#" class="text-warning text-decoration-underline me-2">Update</a>
|
<a href="#" class="text-warning text-decoration-underline me-2">Update</a>
|
||||||
<a href="#" class="text-danger text-decoration-underline">Delete</a>
|
<a href="#" class="text-danger text-decoration-underline">Delete</a>
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
})
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
pagination: {
|
pagination: {
|
||||||
limit: 10
|
limit: 10,
|
||||||
},
|
},
|
||||||
sort: true,
|
sort: true,
|
||||||
search: true,
|
search: true,
|
||||||
data: [
|
data: data,
|
||||||
["11", "Alice", "alice@example.com", "Software Engineer", "ABC Company", "United States"],
|
}).render(document.getElementById("common-table"));
|
||||||
["12", "Bob", "bob@example.com", "Product Manager", "XYZ Inc", "Canada"],
|
|
||||||
["13", "Charlie", "charlie@example.com", "Data Analyst", "123 Corp", "Australia"],
|
|
||||||
["14", "David", "david@example.com", "UI/UX Designer", "456 Ltd", "United Kingdom"],
|
|
||||||
["15", "Eve", "eve@example.com", "Marketing Specialist", "789 Enterprises", "France"],
|
|
||||||
["11", "Alice", "alice@example.com", "Software Engineer", "ABC Company", "United States"],
|
|
||||||
["12", "Bob", "bob@example.com", "Product Manager", "XYZ Inc", "Canada"],
|
|
||||||
["13", "Charlie", "charlie@example.com", "Data Analyst", "123 Corp", "Australia"],
|
|
||||||
["14", "David", "david@example.com", "UI/UX Designer", "456 Ltd", "United Kingdom"],
|
|
||||||
["15", "Eve", "eve@example.com", "Marketing Specialist", "789 Enterprises", "France"],
|
|
||||||
["11", "Alice", "alice@example.com", "Software Engineer", "ABC Company", "United States"],
|
|
||||||
["12", "Bob", "bob@example.com", "Product Manager", "XYZ Inc", "Canada"],
|
|
||||||
["13", "Charlie", "charlie@example.com", "Data Analyst", "123 Corp", "Australia"],
|
|
||||||
["14", "David", "david@example.com", "UI/UX Designer", "456 Ltd", "United Kingdom"],
|
|
||||||
["15", "Eve", "eve@example.com", "Marketing Specialist", "789 Enterprises", "France"],
|
|
||||||
["11", "Alice", "alice@example.com", "Software Engineer", "ABC Company", "United States"],
|
|
||||||
["12", "Bob", "bob@example.com", "Product Manager", "XYZ Inc", "Canada"],
|
|
||||||
["13", "Charlie", "charlie@example.com", "Data Analyst", "123 Corp", "Australia"],
|
|
||||||
["14", "David", "david@example.com", "UI/UX Designer", "456 Ltd", "United Kingdom"],
|
|
||||||
["15", "Eve", "eve@example.com", "Marketing Specialist", "789 Enterprises", "France"],
|
|
||||||
["16", "Frank", "frank@example.com", "HR Manager", "ABC Company", "Germany"],
|
|
||||||
["17", "Grace", "grace@example.com", "Financial Analyst", "XYZ Inc", "Japan"],
|
|
||||||
["18", "Hannah", "hannah@example.com", "Sales Representative", "123 Corp", "Brazil"],
|
|
||||||
["19", "Ian", "ian@example.com", "Software Developer", "456 Ltd", "India"],
|
|
||||||
["20", "Jane", "jane@example.com", "Operations Manager", "789 Enterprises", "China"]
|
|
||||||
]
|
|
||||||
}).render(document.getElementById("common-table"));
|
|
||||||
}
|
|
||||||
|
|
||||||
CommonTableInitWithFetchApi(){
|
|
||||||
fetch(`${GlobalConfig.apiHost}/api/users`)
|
|
||||||
.then((response) => response.json())
|
|
||||||
.then((data) => {
|
|
||||||
console.log("check log response");
|
|
||||||
console.log(data.data);
|
|
||||||
new Grid({
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
name: 'id',
|
|
||||||
formatter: (function (cell) {
|
|
||||||
return gridjs.html('<span class="fw-semibold">' + cell + '</span>');
|
|
||||||
})
|
})
|
||||||
},
|
.catch((error) => console.error("Error fetching data: " + error));
|
||||||
"name",
|
}
|
||||||
{
|
|
||||||
name: 'email',
|
|
||||||
formatter: (function (cell) {
|
|
||||||
return gridjs.html('<a href="">' + cell + '</a>');
|
|
||||||
})
|
|
||||||
},
|
|
||||||
"position", "firstname", "lastname",
|
|
||||||
{
|
|
||||||
name: 'Actions',
|
|
||||||
width: '120px',
|
|
||||||
formatter: (function (cell) {
|
|
||||||
return gridjs.html(`
|
|
||||||
<div class="d-flex justify-items-end gap-10">
|
|
||||||
<a href="#" class="text-primary text-decoration-underline me-2">Details</a>
|
|
||||||
<a href="#" class="text-warning text-decoration-underline me-2">Update</a>
|
|
||||||
<a href="#" class="text-danger text-decoration-underline">Delete</a>
|
|
||||||
</div>
|
|
||||||
`);
|
|
||||||
})
|
|
||||||
},
|
|
||||||
],
|
|
||||||
pagination: {
|
|
||||||
limit: 10
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
search: true,
|
|
||||||
data: data
|
|
||||||
}).render(document.getElementById("common-table"));
|
|
||||||
})
|
|
||||||
.catch((error) => console.error("Error fetching data: " + error));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function (e) {
|
document.addEventListener("DOMContentLoaded", function (e) {
|
||||||
new CommonTable().init();
|
new CommonTable().init();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -39,25 +39,25 @@ class="authentication-bg"
|
|||||||
<input type="email" class="form-control" id="email" name="email" value="user@demo.com" placeholder="Enter your email">
|
<input type="email" class="form-control" id="email" name="email" value="user@demo.com" placeholder="Enter your email">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
{{-- <div class="d-flex justify-content-between align-items-center">
|
||||||
<label for="password" class="form-label">Password</label>
|
<label for="password" class="form-label">Password</label>
|
||||||
<a href="{{ route ('password.request') }}" class="text-decoration-none small text-muted">Forgot password?</a>
|
<a href="{{ route ('password.request') }}" class="text-decoration-none small text-muted">Forgot password?</a>
|
||||||
</div>
|
</div> --}}
|
||||||
<input type="password" class="form-control" id="password" name="password" value="password" placeholder="Enter your password">
|
<input type="password" class="form-control" id="password" name="password" value="password" placeholder="Enter your password">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check mb-3">
|
{{-- <div class="form-check mb-3">
|
||||||
<input type="checkbox" class="form-check-input" id="remember-me">
|
<input type="checkbox" class="form-check-input" id="remember-me">
|
||||||
<label class="form-check-label" for="remember-me">Remember me</label>
|
<label class="form-check-label" for="remember-me">Remember me</label>
|
||||||
</div>
|
</div> --}}
|
||||||
<div class="d-grid">
|
<div class="d-grid">
|
||||||
<button class="btn btn-dark btn-lg fw-medium" type="submit">Sign In</button>
|
<button class="btn btn-dark btn-lg fw-medium" type="submit">Sign In</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center mt-4 text-white text-opacity-50">Don't have an account?
|
{{-- <p class="text-center mt-4 text-white text-opacity-50">Don't have an account?
|
||||||
<a href="{{ route ('register') }}" class="text-decoration-none text-white fw-bold">Sign Up</a>
|
<a href="{{ route ('register') }}" class="text-decoration-none text-white fw-bold">Sign Up</a>
|
||||||
</p>
|
</p> --}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<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 ('dashboards.bigdata' ) }}">SIBEDAS</a>
|
<a class="sub-nav-link" href="{{ route ('home' ) }}">SIBEDAS</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 ('home' ) }}">Dashboard 2</a>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<div class="collapse" id="sidebarDataMaster">
|
<div class="collapse" id="sidebarDataMaster">
|
||||||
<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 ('master.users' ) }}">Users</a>
|
<a class="sub-nav-link" href="{{ route ('users.index' ) }}">Users</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,14 +79,14 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link menu-arrow" href="#sidebarSettings" data-bs-toggle="collapse" role="button"
|
<a class="nav-link menu-arrow" href="#requestAssignment" data-bs-toggle="collapse" role="button"
|
||||||
aria-expanded="false" aria-controls="sidebarSettings">
|
aria-expanded="false" aria-controls="requestAssignment">
|
||||||
<span class="nav-icon">
|
<span class="nav-icon">
|
||||||
<iconify-icon icon="mingcute:task-line"></iconify-icon>
|
<iconify-icon icon="mingcute:task-line"></iconify-icon>
|
||||||
</span>
|
</span>
|
||||||
<span class="nav-text">Request Assignment</span>
|
<span class="nav-text">Request Assignment</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="collapse" id="sidebarSettings">
|
<div class="collapse" id="requestAssignment">
|
||||||
<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 ('request-assignments.index' ) }}">Task</a>
|
<a class="sub-nav-link" href="{{ route ('request-assignments.index' ) }}">Task</a>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<meta name="robots" content="index, follow" />
|
<meta name="robots" content="index, follow" />
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
<meta name="api-token" content="{{ session('api_token') }}">
|
||||||
|
|
||||||
<!-- App favicon -->
|
<!-- App favicon -->
|
||||||
<link rel="shortcut icon" href="/images/dputr.ico">
|
<link rel="shortcut icon" href="/images/dputr.ico">
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
<form id="logout-form" action="{{route('logout')}}" method="POST" style="display: none;">
|
<form id="logout-form" action="{{route('logout')}}" method="POST" style="display: none;">
|
||||||
@csrf
|
@csrf
|
||||||
</form>
|
</form>
|
||||||
<a class="dropdown-item text-danger" href="#" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
<a class="dropdown-item text-danger" href="#" onclick="event.preventDefault(); logoutUser();">
|
||||||
<iconify-icon icon="solar:logout-3-outline"
|
<iconify-icon icon="solar:logout-3-outline"
|
||||||
class="align-middle me-2 fs-18"></iconify-icon><span
|
class="align-middle me-2 fs-18"></iconify-icon><span
|
||||||
class="align-middle">Logout</span>
|
class="align-middle">Logout</span>
|
||||||
@@ -193,4 +193,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
<script>
|
||||||
|
function logoutUser() {
|
||||||
|
// Hapus token dari localStorage
|
||||||
|
localStorage.removeItem('token');
|
||||||
|
|
||||||
|
// Submit form logout Laravel
|
||||||
|
document.getElementById('logout-form').submit();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -10,16 +10,16 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="d-flex justify-content-end pb-3">
|
<div class="d-flex justify-content-end pb-3">
|
||||||
<a href="{{ route('master.users.create')}}" class="btn btn-outline-success width-lg">Create</a>
|
<a href="{{ route('users.create')}}" class="btn btn-outline-success width-lg">Create</a>
|
||||||
</div>
|
</div>
|
||||||
{{$users}}
|
{{$users}}
|
||||||
<div>
|
<div>
|
||||||
<div id="common-table"></div>
|
<div id="table-users"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('scripts')
|
@section('scripts')
|
||||||
@vite(['resources/js/tables/common-table.js'])
|
@vite(['resources/js/master/users/users.js'])
|
||||||
@endsection
|
@endsection
|
||||||
@@ -10,14 +10,12 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div>
|
<div>
|
||||||
<h1>Request Assignment Page</h1>
|
<div id="table-request-assignment"></div>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div id="table-import-datasources"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('scripts')
|
@section('scripts')
|
||||||
|
@vite(['resources/js/request-assignment/request-assignment.js'])
|
||||||
@endsection
|
@endsection
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
@extends('layouts.vertical', ['subtitle' => 'Syncronize'])
|
@extends('layouts.vertical', ['subtitle' => 'General'])
|
||||||
|
|
||||||
@section('css')
|
@section('css')
|
||||||
@vite(['node_modules/gridjs/dist/theme/mermaid.min.css'])
|
@vite(['node_modules/gridjs/dist/theme/mermaid.min.css'])
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
@include('layouts.partials/page-title', ['title' => 'Settings', 'subtitle' => 'Syncronize'])
|
@include('layouts.partials/page-title', ['title' => 'Settings', 'subtitle' => 'General'])
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="d-flex justify-content-end pb-3">
|
<div class="d-flex justify-content-end pb-3">
|
||||||
|
|||||||
@@ -11,12 +11,24 @@ use App\Models\User;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::get('/user', function (Request $request) {
|
// Route::get('/user', function (Request $request) {
|
||||||
return $request->user();
|
// return $request->user();
|
||||||
})->middleware('auth:sanctum');
|
// })->middleware('auth:sanctum');
|
||||||
|
|
||||||
Route::group(['middleware' => 'auth:scantum'], function (){
|
Route::post('/login', [UsersController::class, 'login'])->name('api.user.login');
|
||||||
|
Route::group(['middleware' => 'auth:sanctum'], function (){
|
||||||
|
// users
|
||||||
|
Route::get('/users', [UsersController::class, 'index'])->name('users');
|
||||||
|
Route::post('/logout', [UsersController::class, 'logout'])->name('api.user.logout');
|
||||||
|
|
||||||
|
// global settings
|
||||||
Route::apiResource('global-settings', GlobalSettingsController::class);
|
Route::apiResource('global-settings', GlobalSettingsController::class);
|
||||||
|
|
||||||
|
// import datasource
|
||||||
|
Route::apiResource('import-datasource',ImportDatasourceController::class);
|
||||||
|
|
||||||
|
// request assignments
|
||||||
|
Route::apiResource('request-assignments',RequestAssignmentController::class);
|
||||||
});
|
});
|
||||||
Route::controller(DashboardController::class)->group(function(){
|
Route::controller(DashboardController::class)->group(function(){
|
||||||
Route::get('/business-documents','businnessDocument');
|
Route::get('/business-documents','businnessDocument');
|
||||||
@@ -24,19 +36,8 @@ Route::controller(DashboardController::class)->group(function(){
|
|||||||
Route::get('/all-task-documents', 'allTaskDocuments');
|
Route::get('/all-task-documents', 'allTaskDocuments');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('/users', [UsersController::class, 'index'])->name('users');
|
|
||||||
Route::post('/login', [UsersController::class, 'login'])->name('api.user.login');
|
|
||||||
|
|
||||||
Route::get('/sync-task', [SyncronizeController::class, 'syncPbgTask'])->name('api.task');
|
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-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('/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::get('/sync-task-submit/{uuid}', [SyncronizeController::class, 'syncTaskDetailSubmit'])->name('api.task.submit');
|
||||||
|
|
||||||
// import datasource
|
|
||||||
Route::apiResource('import-datasource',ImportDatasourceController::class);
|
|
||||||
|
|
||||||
// global setting
|
|
||||||
|
|
||||||
|
|
||||||
// request assignment
|
|
||||||
Route::apiResource('request-assignments',RequestAssignmentController::class);
|
|
||||||
@@ -10,52 +10,28 @@ use Illuminate\Support\Facades\Route;
|
|||||||
|
|
||||||
require __DIR__ . '/auth.php';
|
require __DIR__ . '/auth.php';
|
||||||
|
|
||||||
// Route::group(['prefix' => '/', 'middleware' => 'auth'], function () {
|
|
||||||
// // Route::get('', [RoutingController::class, 'index'])->name('root');
|
|
||||||
// Route::get('{first}/{second}/{third}', [RoutingController::class, 'thirdLevel'])->name('third');
|
|
||||||
// Route::get('{first}/{second}', [RoutingController::class, 'secondLevel'])->name('second');
|
|
||||||
// // Route::get('{any}', [RoutingController::class, 'root'])->name('any');
|
|
||||||
// });
|
|
||||||
|
|
||||||
// auth
|
// auth
|
||||||
Route::group(['middleware' => 'auth'], function(){
|
Route::group(['middleware' => 'auth'], function(){
|
||||||
|
|
||||||
// landing page
|
|
||||||
Route::get('', [HomeController::class, 'index'])->name('home');
|
|
||||||
|
|
||||||
//dashboards
|
//dashboards
|
||||||
Route::group(['prefix' => '/dashboards'], function(){
|
Route::group(['prefix' => '/dashboards'], function(){
|
||||||
Route::get('/bigdata', [BigDataController::class, 'index'])->name('dashboards.bigdata');
|
Route::get('/bigdata', [BigDataController::class, 'index'])->name('home');
|
||||||
});
|
});
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
Route::group(['prefix' => '/settings'], function(){
|
Route::group(['prefix' => '/settings'], function(){
|
||||||
Route::resource('/general', SettingsController::class);
|
Route::resource('/general', SettingsController::class);
|
||||||
Route::get('/syncronize', [SyncronizeController::class, 'index'])->name('settings.syncronize');
|
Route::get('/syncronize', [SyncronizeController::class, 'index'])->name('settings.syncronize');
|
||||||
// Route::get('/general', [SettingsController::class, 'index'])->name('settings.general');
|
|
||||||
Route::post('/syncronize', [SyncronizeController::class, 'syncronizeTask'])->name('settings.sync');
|
Route::post('/syncronize', [SyncronizeController::class, 'syncronizeTask'])->name('settings.sync');
|
||||||
});
|
});
|
||||||
|
|
||||||
// masters
|
// masters
|
||||||
Route::group(['prefix' => '/master'], function (){
|
Route::group(['prefix' => '/master'], function (){
|
||||||
// Route::controller(UsersController::class)->group(function(){
|
Route::resource('/users', UsersController::class);
|
||||||
// Route::get('/users', 'index')->name('master.users');
|
Route::get('/all-users', [UsersController::class, 'allUsers'])->name('users.all');
|
||||||
// Route::get('/users/create', 'create')->name('master.users.create');
|
|
||||||
// Route::post('/users/store', 'store')->name('master.users.store');
|
|
||||||
// Route::get('/users/edit/{id}', 'edit')->name('master.users.edit');
|
|
||||||
// Route::put('/users/update/{id}', 'edit')->name('master.users.edit');
|
|
||||||
// });
|
|
||||||
Route::get('/users', [UsersController::class, 'index'])->name('master.users');
|
|
||||||
Route::get('/users/create', [UsersController::class, 'create'])->name('master.users.create');
|
|
||||||
Route::post('/users/store', [UsersController::class, 'store'])->name('master.users.store');
|
|
||||||
Route::get('/users/edit/{id}', [UsersController::class, 'edit'])->name('master.users.edit');
|
|
||||||
Route::put('/users/update', [UsersController::class, 'update'])->name('master.users.update');
|
|
||||||
Route::delete('/users/delete/{id}', [UsersController::class, 'delete'])->name('master.users.delete');
|
|
||||||
Route::delete('/users/show/{id}', [UsersController::class, 'show'])->name('master.users.show');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// request assignments
|
// request assignments
|
||||||
|
|
||||||
Route::group(['prefix' => '/request-assignments'], function(){
|
Route::group(['prefix' => '/request-assignments'], function(){
|
||||||
Route::controller(PbgTaskController::class)->group(function(){
|
Route::controller(PbgTaskController::class)->group(function(){
|
||||||
Route::get('/index', 'index')->name('request-assignments.index');
|
Route::get('/index', 'index')->name('request-assignments.index');
|
||||||
|
|||||||
Reference in New Issue
Block a user