Skip to content

GitLab

  • Menu
    • Projects Groups Snippets
      Help
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • G Go-Toko
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ahmad Hasan Ali
  • Go-Toko
  • Merge requests
  • !2

Merged
Created 2 years ago by Ahmad Hasan Ali@HasanMaintainer

Management Menu

  • Overview 0
  • Commits 11
  • Changes 35

In this merge, i'm just done with the management parent menu. I'm not yet implement management menu for submenu's and the sort or order the menu. So the menu order just from the older one to the newest one

  • Ahmad Hasan Ali @Hasan requested review from @Hasan 2 years ago

    requested review from @Hasan

  • Ahmad Hasan Ali @Hasan assigned to @Hasan 2 years ago

    assigned to @Hasan

  • Ahmad Hasan Ali @Hasan approved this merge request 2 years ago

    approved this merge request

  • Ahmad Hasan Ali @Hasan mentioned in commit ff2a0180 2 years ago

    mentioned in commit ff2a0180

  • Ahmad Hasan Ali @Hasan merged 2 years ago

    merged

  • You're only seeing other activity in the feed. To add a comment, switch to one of the following options.
Please register or sign in to reply
Compare
  • main (base)

and
  • latest version
    663ce63a
    11 commits, 2 years ago

35 files
+ 2344
- 1078

    Preferences

    File browser
    Compare changes
a‎pp‎
Http/Controllers/S‎uperadmin/Settings‎
MenuContr‎oller.php‎ +168 -0
Mod‎els‎
MenuMo‎del.php‎ +30 -0
RoleMenu‎Model.php‎ +28 -0
SubMenuM‎odel.php‎ +20 -0
rolesMo‎del.php‎ +9 -2
Prov‎iders‎
AppServiceP‎rovider.php‎ +14 -2
con‎fig‎
app‎.php‎ +7 -3
loggi‎ng.php‎ +1 -1
database/‎migrations‎
2023_02_28_070200_cr‎eate_menus_table.php‎ +2 -0
2023_03_06_072227_crea‎te_sub_menus_table.php‎ +38 -0
pub‎lic‎
ass‎ets‎
c‎ss‎
styl‎e.css‎ +1 -1
j‎s‎
scri‎pt.js‎ +3 -73
validatio‎n-ajax.js‎ +35 -0
plugins/‎alertify‎
custom-aler‎tify.min.js‎ +44 -1
mix-mani‎fest.json‎ +10 -10
reso‎urces‎
j‎s‎
toastr‎.min.js‎ +43 -1
vi‎ews‎
lay‎out‎
part‎ials‎
footer-scrip‎ts.blade.php‎ +3 -3
head.bl‎ade.php‎ +7 -7
header.b‎lade.php‎ +6 -4
sidebar.‎blade.php‎ +33 -898
mainlayout‎.blade.php‎ +4 -4
mainlayoutexa‎mple.blade.php‎ +27 -0
layout ex‎ample-page‎
part‎ials‎
footer-scrip‎ts.blade.php‎ +136 -0
head.bl‎ade.php‎ +109 -0
header.b‎lade.php‎ +246 -0
loader.b‎lade.php‎ +3 -0
sidebar.‎blade.php‎ +935 -0
mainlayout‎.blade.php‎ +27 -0
pa‎ge‎
au‎th‎
signin.b‎lade.php‎ +3 -0
super‎admin‎
settin‎gs/menu‎
index.b‎lade.php‎ +297 -0
index.b‎lade.php‎ +27 -7
rou‎tes‎
superad‎min.php‎ +13 -0
READ‎ME.md‎ +14 -60
compos‎er.json‎ +1 -0
package-‎lock.json‎ +0 -1
app/Http/Controllers/Superadmin/Settings/MenuController.php 0 → 100644
+ 168
- 0
  • View file @ 663ce63a

  • Edit in single-file editor

  • Edit in Web IDE

<?php
namespace App\Http\Controllers\Superadmin\Settings;
use App\Http\Controllers\Controller;
use App\Models\MenuModel;
use App\Models\RoleMenuModel;
use App\Models\RolesModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;
class MenuController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('page.superadmin.settings.menu.index', [
'roles' => RolesModel::with('roleMenu.menu.subMenu')->get(),
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => ['required', 'max:20'],
'url' => ['required'],
'icon' => ['required'],
]);
if ($validator->fails()) {
return response()->json([
'status' => 0,
'error' => $validator->errors()->toArray(),
]);
}
$data = array_merge($request->all(), ['status' => 1]);
try {
DB::beginTransaction();
$menu = MenuModel::create($data);
RoleMenuModel::create([
'role_id' => $request->role_id,
'menu_id' => $menu->id,
]);
DB::commit();
} catch (\Throwable$exception) {
DB::rollback();
Log::error('Error when store data to databases in menus management, the error is : \n' . $exception);
return response()->json(['status' => 0, 'msg' => $exception]);
}
Log::alert('Menu has been created from user ' . Auth::user()->name . ' with menus name ' . $data['name']);
return response()->json(['status' => 1, 'msg' => 'Success create the menu']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$data = MenuModel::where('id', $id)->first();
return response()->json($data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'name' => ['required', 'max:20'],
'url' => ['required'],
'icon' => ['required'],
]);
if ($validator->fails()) {
return response()->json([
'status' => 0,
'error' => $validator->errors()->toArray()
]);
}
$data = array_merge($request->all(), ['status' => 1]);
try {
DB::beginTransaction();
MenuModel::where('id', $id)->update([
'name' => $request->name,
'url' => $request->url,
'icon' => $request->icon
]);
DB::commit();
} catch (\Throwable$exception) {
DB::rollback();
Log::error('Error when store data to databases in menus management, the error is : \n' . $exception);
return response()->json(['status' => 0, 'msg' => $exception]);
}
Log::alert('Menu has been created from user ' . Auth::user()->name . ' with menus name ' . $data['name']);
return response()->json(['status' => 1, 'msg' => 'Success create the menu']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
MenuModel::findOrFail($id)->delete();
return response()->json(['status' => 'success']);
} catch (\Throwable$th) {
Log::error('Error when deleting data from menus management, the error is : \n' . $th);
return response()->json(['status' => 'error']);
}
}
}
app/Models/MenuModel.php 0 → 100644
+ 30
- 0
  • View file @ 663ce63a

  • Edit in single-file editor

  • Edit in Web IDE

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MenuModel extends Model
{
use HasFactory;
protected $table = 'menus';
protected $fillable = [
'name',
'url',
'icon',
'status'
];
public function roleMenu()
{
return $this->hasMany(RoleMenuModel::class, foreignKey: 'menu_id');
}
public function subMenu()
{
return $this->hasMany(SubMenuModel::class, foreignKey: 'menu_id');
}
}
app/Models/RoleMenuModel.php 0 → 100644
+ 28
- 0
  • View file @ 663ce63a

  • Edit in single-file editor

  • Edit in Web IDE

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RoleMenuModel extends Model
{
use HasFactory;
protected $table = 'roles_menus';
protected $fillable = [
'role_id',
'menu_id'
];
public function role()
{
return $this->belongsTo(RolesModel::class);
}
public function menu()
{
return $this->belongsTo(MenuModel::class);
}
}
app/Models/SubMenuModel.php 0 → 100644
+ 20
- 0
  • View file @ 663ce63a

  • Edit in single-file editor

  • Edit in Web IDE

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SubMenuModel extends Model
{
use HasFactory;
protected $table = 'sub_menus';
protected $guarded = ['id'];
public function menu()
{
$this->belongsTo(MenuModel::class);
}
}
app/Models/rolesModel.php
+ 9
- 2
  • View file @ 663ce63a

  • Edit in single-file editor

  • Edit in Web IDE


Show all unchanged lines Show 20 lines
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class rolesModel extends Model
class RolesModel extends Model
{
use HasFactory;
protected $table = 'roles';
protected $guarded = ['id'];
protected $fillable = [
'name'
];
public function roleMenu()
{
return $this->hasMany(RoleMenuModel::class, foreignKey: 'role_id');
}
}
Assignee
Ahmad Hasan Ali's avatar
Ahmad Hasan Ali
@Hasan
Assign to
Reviewer
Ahmad Hasan Ali's avatar
Ahmad Hasan Ali @Hasan
Request review from
Milestone
No milestone
None
None
Time tracking
No estimate or time spent
0
Labels
None
Lock merge request
Unlocked
1
1 participant
Ahmad Hasan Ali
Reference: Hasan/go-toko!2
Source branch: 2SU-Dynamic_menu

Menu

Projects Groups Snippets
Help