diff --git a/app/Http/Controllers/Api/MenusController.php b/app/Http/Controllers/Api/MenusController.php index 50fd187..241c13b 100644 --- a/app/Http/Controllers/Api/MenusController.php +++ b/app/Http/Controllers/Api/MenusController.php @@ -22,7 +22,8 @@ class MenusController extends Controller $query = $query->where("name", "like", "%".$request->get("search")."%"); } - return response()->json($query->paginate(config('app.paginate_per_page', 50))); + // return response()->json($query->paginate(config('app.paginate_per_page', 50))); + return MenuResource::collection($query->paginate(config('app.paginate_per_page',50))); } /** diff --git a/app/Http/Resources/MenuResource.php b/app/Http/Resources/MenuResource.php index 7e67480..72cb9d0 100644 --- a/app/Http/Resources/MenuResource.php +++ b/app/Http/Resources/MenuResource.php @@ -14,6 +14,16 @@ class MenuResource extends JsonResource */ public function toArray(Request $request): array { - return parent::toArray($request); + // return parent::toArray($request); + return [ + 'id' => $this->id, + 'name' => $this->name, + 'icon' => $this->icon, + 'url' => $this->url, + 'sort_order' => $this->sort_order, + 'parent' => $this->parent ? new MenuResource($this->parent) : null, + 'created_at' => $this->created_at, + 'updated_at' => $this->updated_at + ]; } } diff --git a/app/Models/Menu.php b/app/Models/Menu.php index 7dcd69f..4e4ea9d 100644 --- a/app/Models/Menu.php +++ b/app/Models/Menu.php @@ -22,4 +22,7 @@ class Menu extends Model public function children(){ return $this->hasMany(Menu::class,'parent_id'); } + public function parent(){ + return $this->belongsTo(Menu::class,'parent_id'); + } } diff --git a/resources/js/data/google-sheet/index.js b/resources/js/data/google-sheet/index.js index b82fcd0..4d479ce 100644 --- a/resources/js/data/google-sheet/index.js +++ b/resources/js/data/google-sheet/index.js @@ -41,8 +41,8 @@ class GoogleSheets { tableContainer.innerHTML = ""; // Get user permissions from data attributes - let canUpdate = tableContainer.getAttribute("data-updater") === "1"; - let canDelete = tableContainer.getAttribute("data-destroyer") === "1"; + // let canUpdate = tableContainer.getAttribute("data-updater") === "1"; + // let canDelete = tableContainer.getAttribute("data-destroyer") === "1"; this.table = new Grid({ columns: [ @@ -65,25 +65,25 @@ class GoogleSheets { `; - if (canUpdate) { - buttons += ` - - - - `; - } + // if (canUpdate) { + // buttons += ` + // + // + // + // `; + // } - if (canDelete) { - buttons += ` - - `; - } + // if (canDelete) { + // buttons += ` + // + // `; + // } - if (!canUpdate && !canDelete) { - buttons = `No Privilege`; - } + // if (!canUpdate && !canDelete) { + // buttons = `No Privilege`; + // } return gridjs.html( `
${buttons}
` diff --git a/resources/js/menus/index.js b/resources/js/menus/index.js index 38dbc49..bc2bbe1 100644 --- a/resources/js/menus/index.js +++ b/resources/js/menus/index.js @@ -39,7 +39,7 @@ class Menus { "Name", "Url", "Icon", - "ParentID", + "Parent Name", "Sort Order", { name: "Action", @@ -97,16 +97,22 @@ class Menus { .getAttribute("content")}`, "Content-Type": "application/json", }, - then: (data) => - data.data.map((item) => [ - item.id, - item.name, - item.url, - item.icon, - item.parent_id, - item.sort_order, - item.id, - ]), + then: (data) => { + console.log("Full API Response:", data); // Log the full response + + return data.data.map((item, index) => { + console.log(`Item ${index + 1}:`, item); // Log each item + return [ + item.id, + item.name, + item.url, + item.icon, + item.parent?.name, + item.sort_order, + item.id, + ]; + }); + }, total: (data) => data.total, }, }).render(tableContainer); diff --git a/resources/views/data/google-sheet/index.blade.php b/resources/views/data/google-sheet/index.blade.php index c1889f5..9045c31 100644 --- a/resources/views/data/google-sheet/index.blade.php +++ b/resources/views/data/google-sheet/index.blade.php @@ -15,9 +15,9 @@
- @if ($user_menu_permission['allow_create']) +