Skip to content

FOUR-18130: UX case detail #7454

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 127 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
c14611b
FOUR-18617: The Header of the columns will change 'Capitalized Case'
fagubla Aug 29, 2024
7b78095
Merge pull request #7302 from ProcessMaker/feature/FOUR-18617
pmPaulis Aug 31, 2024
b42c48c
feature/FOUR-18977
luNunezProcessmaker Sep 9, 2024
02949e3
feature/FOUR-18623
luNunezProcessmaker Sep 10, 2024
4676c14
Merge pull request #7343 from ProcessMaker/feature/FOUR-18977
pmPaulis Sep 10, 2024
40dc3cc
feature/FOUR-18623
luNunezProcessmaker Sep 10, 2024
41fb949
Merge pull request #7346 from ProcessMaker/feature/FOUR-18623
pmPaulis Sep 10, 2024
0b21f85
Merge remote-tracking branch 'origin/next' into feature/FOUR-18130
pmPaulis Sep 11, 2024
dc1adfe
FOUR-19004: First commit for tailwind css in platform
hjonathan Sep 11, 2024
f8941cd
Merge pull request #7353 from ProcessMaker/feature/FOUR-19004
pmPaulis Sep 11, 2024
bc94f64
FOUR-19004: Create a NEW VIEW for cases Part Counters
hjonathan Sep 12, 2024
1f0759a
FOUR-18634: New view "cases" and Implement new UI tabs
fagubla Sep 12, 2024
2f43d89
FOUR-19004: Create a NEW VIEW for cases Part Counters
hjonathan Sep 12, 2024
90f4a95
FOUR-19004: Create a NEW VIEW for cases Part Counters
hjonathan Sep 12, 2024
90d1ab5
FOUR-19004: Create a NEW VIEW for cases Part Counters
hjonathan Sep 12, 2024
7bdb135
remove custom size
fagubla Sep 12, 2024
57554df
update class
fagubla Sep 12, 2024
763fa13
Merge pull request #7359 from ProcessMaker/feature/FOUR-19004-A
pmPaulis Sep 12, 2024
5ef9e16
Merge pull request #7362 from ProcessMaker/feature/FOUR-18634
pmPaulis Sep 12, 2024
1412321
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
fagubla Sep 12, 2024
ac183b5
FOUR-19000: Create a NEW VIEW for cases Part List
hjonathan Sep 16, 2024
b6a1a7c
FOUR-18637:implement content "Tasks" tab
fagubla Sep 16, 2024
9b16023
Merge remote-tracking branch 'origin/next' into feature/FOUR-18130
pmPaulis Sep 16, 2024
63793d3
FOUR-19000: Create a NEW VIEW for cases Part List
hjonathan Sep 16, 2024
b38b177
FOUR-19000: Create a NEW VIEW for cases Part List
hjonathan Sep 16, 2024
343faed
CR
fagubla Sep 16, 2024
619a1e8
routes
fagubla Sep 17, 2024
4258536
Merge pull request #7373 from ProcessMaker/feature/FOUR-18637
pmPaulis Sep 17, 2024
040844f
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
fagubla Sep 17, 2024
2c67f4d
FOUR-19000: Create a NEW VIEW for cases Part List
hjonathan Sep 17, 2024
22483ec
FOUR-19000: Create a NEW VIEW for cases Part List
hjonathan Sep 17, 2024
9779982
Merge pull request #7374 from ProcessMaker/feature/FOUR-19000
pmPaulis Sep 17, 2024
20874b7
FOUR-19226
pmPaulis Sep 18, 2024
a6b418e
redirect to requests
pmPaulis Sep 18, 2024
b78b352
update
fagubla Sep 19, 2024
8927c38
feature/FOUR-18976
luNunezProcessmaker Sep 19, 2024
372fa26
observations
pmPaulis Sep 19, 2024
d593669
feature/FOUR-18976
luNunezProcessmaker Sep 19, 2024
88dea32
Merge pull request #7377 from ProcessMaker/feature/FOUR-18135
pmPaulis Sep 19, 2024
6eb2065
Update CasesMain.vue
luNunezProcessmaker Sep 19, 2024
1dfb22d
FOUR-19003: Create a NEW VIEW for cases Part Filters
hjonathan Sep 19, 2024
59663a6
conflicts
pmPaulis Sep 19, 2024
024b963
Merge pull request #7389 from ProcessMaker/feature/FOUR-18976
pmPaulis Sep 19, 2024
f7dcb09
FOUR-19273
pmPaulis Sep 20, 2024
ac601ad
FOUR-19003: Create a NEW VIEW for cases Part Filters
hjonathan Sep 20, 2024
324c30e
FOUR-19003: Create a NEW VIEW for cases Part Filters
hjonathan Sep 20, 2024
8a1da88
Merge branch 'feature/FOUR-18130' of github.com:ProcessMaker/processm…
hjonathan Sep 20, 2024
9d063a7
FOUR-18970: Create the view for show the summary related to the case …
fagubla Sep 20, 2024
885e27e
FOUR-19003: Create a NEW VIEW for cases Part Filters
hjonathan Sep 20, 2024
374cb5b
FOUR-18636
pmPaulis Sep 20, 2024
30bfa83
Merge pull request #7395 from ProcessMaker/feature/FOUR-18970
pmPaulis Sep 20, 2024
e8d5672
Merge remote-tracking branch 'origin/next' into feature/FOUR-18130
pmPaulis Sep 20, 2024
395cad8
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
pmPaulis Sep 20, 2024
375def9
FOUR-19003: Update observations
hjonathan Sep 20, 2024
ea21797
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
pmPaulis Sep 20, 2024
82bc421
observations
pmPaulis Sep 20, 2024
e61787b
Merge pull request #7392 from ProcessMaker/feature/FOUR-19003
pmPaulis Sep 20, 2024
859aa4d
Merge pull request #7385 from ProcessMaker/feature/FOUR-19226
pmPaulis Sep 20, 2024
709b6f9
Merge pull request #7399 from ProcessMaker/feature/FOUR-18636
pmPaulis Sep 20, 2024
4c928fb
Merge pull request #7393 from ProcessMaker/feature/FOUR-19273
pmPaulis Sep 23, 2024
45d47f5
FOUR-19237: Cases list Pagination
hjonathan Sep 23, 2024
5c62a1b
FOUR-19237: Cases list Pagination
hjonathan Sep 23, 2024
82c9408
FOUR-19237: Cases list Pagination
hjonathan Sep 23, 2024
23906d9
FOUR-19237: Cases list Pagination
hjonathan Sep 23, 2024
686f04b
FOUR-19237: Cases list Pagination
hjonathan Sep 23, 2024
d94b322
feature/FOUR-19347
luNunezProcessmaker Sep 24, 2024
33642d4
Merge branch 'feature/FOUR-18130' of github.com:ProcessMaker/processm…
hjonathan Sep 24, 2024
cc5e79a
FOUR-19237: Cases list Pagination
hjonathan Sep 24, 2024
acdaf57
Merge pull request #7405 from ProcessMaker/feature/FOUR-19347
pmPaulis Sep 24, 2024
7c6a129
Merge pull request #7403 from ProcessMaker/feature/FOUR-19237
pmPaulis Sep 24, 2024
38ae087
feature/FOUR-19316
luNunezProcessmaker Sep 24, 2024
655c76c
FOUR-18545: Use the current counter My Request (current API)
hjonathan Sep 24, 2024
ff01d6f
feature/FOUR-19091
luNunezProcessmaker Sep 24, 2024
ff1f007
Merge pull request #7409 from ProcessMaker/feature/FOUR-18545
pmPaulis Sep 24, 2024
078cade
Merge pull request #7410 from ProcessMaker/feature/FOUR-19091
pmPaulis Sep 24, 2024
fd23602
FOUR-19349
pmPaulis Sep 24, 2024
8b3ca55
Solving observations
pmPaulis Sep 24, 2024
67cc31d
Merge pull request #7411 from ProcessMaker/bugfix/FOUR-19349
pmPaulis Sep 25, 2024
9d559a5
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
pmPaulis Sep 25, 2024
cd1e2f2
FOUR-19319 Add links in the columns in Tasks tab
hjonathan Sep 25, 2024
3c9baec
feature/FOUR-19007
luNunezProcessmaker Sep 25, 2024
47882f7
Merge pull request #7414 from ProcessMaker/feature/FOUR-19319
pmPaulis Sep 25, 2024
e746f29
feature/FOUR-19267
luNunezProcessmaker Sep 25, 2024
07f4774
Merge branch 'feature/FOUR-18130' of github.com:ProcessMaker/processm…
luNunezProcessmaker Sep 25, 2024
c1809ca
FOUR-19328: Enable the order desc/asc Tasks tab
hjonathan Sep 25, 2024
f67e191
FOUR-19377
pmPaulis Sep 25, 2024
1f9261d
Merge pull request #7407 from ProcessMaker/feature/FOUR-19316
pmPaulis Sep 25, 2024
590e63c
Merge pull request #7415 from ProcessMaker/feature/FOUR-19007
pmPaulis Sep 25, 2024
062a227
Merge pull request #7418 from ProcessMaker/feature/FOUR-19377
pmPaulis Sep 25, 2024
3ca2e30
FOUR-18135
pmPaulis Sep 26, 2024
cab3c62
FOUR-19328: Enable the order desc/asc Tasks tab
hjonathan Sep 26, 2024
7f7dd76
FOUR-19328: Enable the order desc/asc Tasks tab
hjonathan Sep 26, 2024
d9927ff
feature/FOUR-19267
luNunezProcessmaker Sep 26, 2024
7c8d0fd
Merge branch 'feature/FOUR-18130' of github.com:ProcessMaker/processm…
luNunezProcessmaker Sep 26, 2024
e0ba7b1
FOUR-19328: Enable the order desc/asc Tasks tab
hjonathan Sep 26, 2024
ddfc31d
Improve the scopes
pmPaulis Sep 26, 2024
e59b9e7
Merge pull request #7416 from ProcessMaker/feature/FOUR-19328
pmPaulis Sep 26, 2024
2f1bb24
feature/FOUR-19267
luNunezProcessmaker Sep 26, 2024
2878d40
feature/FOUR-19267
luNunezProcessmaker Sep 26, 2024
a755c6a
adding more test
pmPaulis Sep 27, 2024
da51a78
Merge remote-tracking branch 'origin/feature/FOUR-18130' into feature…
pmPaulis Sep 27, 2024
25c9cde
Merge pull request #7420 from ProcessMaker/feature/FOUR-18135
pmPaulis Sep 27, 2024
b7ae4d8
Update ProcessRequest.php
luNunezProcessmaker Sep 27, 2024
ef81444
feature/FOUR-19267
luNunezProcessmaker Sep 27, 2024
31b2516
Merge branch 'feature/FOUR-19267' of github.com:ProcessMaker/processm…
luNunezProcessmaker Sep 27, 2024
a51fe26
FOUR-18631: SPIKE: Review the comments Component
hjonathan Sep 27, 2024
0cce034
FOUR-18631: SPIKE: Review the comments Component
hjonathan Sep 27, 2024
00ccbef
Update ProcessRequestController.php
luNunezProcessmaker Sep 27, 2024
17a92d0
Merge pull request #7424 from ProcessMaker/feature/FOUR-19267
pmPaulis Sep 30, 2024
a40ba16
FOUR-18631: SPIKE: Review the comments Component
hjonathan Sep 30, 2024
28864bb
feature/FOUR-19330
luNunezProcessmaker Sep 30, 2024
ef065bd
feature/FOUR-19330
luNunezProcessmaker Sep 30, 2024
3771f39
Merge pull request #7431 from ProcessMaker/feature/FOUR-18631
pmPaulis Oct 1, 2024
c56e671
FOUR-18638:Create a component with collpase the row and show some con…
fagubla Oct 1, 2024
748e4ab
feature/FOUR-19330
luNunezProcessmaker Oct 1, 2024
79b98a3
feature/FOUR-19330
luNunezProcessmaker Oct 1, 2024
e2b4f72
FOUR-18130: Update the Closed status
pmPaulis Oct 1, 2024
c884ec8
Update CollapseFormCell.vue
fagubla Oct 2, 2024
7221dcf
feature/FOUR-19330
luNunezProcessmaker Oct 2, 2024
6e48543
feature/FOUR-19330
luNunezProcessmaker Oct 2, 2024
01a5a72
feature/FOUR-19330
luNunezProcessmaker Oct 2, 2024
794723c
feature/FOUR-19353
luNunezProcessmaker Oct 2, 2024
113f12e
Merge pull request #7446 from ProcessMaker/feature/FOUR-18638
pmPaulis Oct 2, 2024
44740b8
Merge pull request #7448 from ProcessMaker/feature/FOUR-19353
pmPaulis Oct 2, 2024
f363a02
Merge branch 'feature/FOUR-18130' into feature/FOUR-19330
fagubla Oct 2, 2024
1c317d1
Merge pull request #7447 from ProcessMaker/feature/FOUR-19330
pmPaulis Oct 2, 2024
e32a5a9
getDataTask has already been exported. Exported identifiers must be u…
pmPaulis Oct 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions ProcessMaker/Http/Controllers/Api/ProcessRequestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -839,4 +839,43 @@ public function endEventDestination(ProcessRequest $request)

return response()->json(['message' => __('End event found'), 'data' => $data]);
}

/**
* This endpoint returns requests by case number
*
* @param Request $request
*
* @return ApiCollection
*/
public function getRequestsByCase(Request $request, User $user = null)
{
if (!$user) {
$user = Auth::user();
}

// Validate the inputs, including optional ones
$request->validate([
'case_number' => 'required|integer',
'order_by' => 'nullable|string|in:id,name,status,user_id,initiated_at,participants',
'order_direction' => 'nullable|string|in:asc,desc',
'page' => 'nullable|integer|min:1',
'per_page' => 'nullable|integer',
]);

$query = ProcessRequest::forUser($user);

// Filter by case_number
$query->filterByCaseNumber($request);

// Apply ordering only if a valid order_by field is provided
$query->applyOrdering($request);
$response = $query->applyPagination($request);

// Get activeTasks and participants
$response = $response->map(function ($processRequest) use ($request) {
return new ProcessRequestResource($processRequest);
});

return new ApiCollection($response);
}
}
58 changes: 58 additions & 0 deletions ProcessMaker/Http/Controllers/Api/TaskController.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,15 @@ class TaskController extends Controller
'Completed' => 'CLOSED',
];

protected $defaultCase = [
'id', // Task #
'element_name', // Task Name
'user_id', // Participant
'process_id', // Process
'due_at', // Due At
'process_request_id', // Request Id #
];

/**
* Display a listing of the resource.
*
Expand Down Expand Up @@ -149,6 +158,55 @@ public function index(Request $request, $getTotal = false, User $user = null)
return new TaskCollection($response);
}

/**
* Get the task list related to the case
* @param Request $request
* @param User $user used by Saved Search package to return accurate counts
* @return array
*/
public function indexCase(Request $request, User $user = null)
{
if (!$user) {
$user = Auth::user();
}

// Validate the inputs, including optional ones
$request->validate([
'case_number' => 'required|integer',
'status' => 'nullable|string|in:ACTIVE,CLOSED',
'order_by' => 'nullable|string|in:id,element_name,due_at,user.lastname,process.name',
'order_direction' => 'nullable|string|in:asc,desc',
'page' => 'nullable|integer|min:1',
'per_page' => 'nullable|integer',
]);

// Get only the columns defined
$query = ProcessRequestToken::select($this->defaultCase);
// Filter by case_number
$query->filterByCaseNumber($request);
// Filter by status
$query->filterByStatus($request);
// Return the process information
$query->getProcess();
// Return the user information
$query->getUser();
// Filter only the task related to the user
$this->applyForCurrentUser($query, $user);
// Exclude non visible task
$this->excludeNonVisibleTasks($query, $request);
// Apply ordering only if a valid order_by field is provided
$query->applyOrdering($request);

try {
$response = $query->applyPagination($request);
$response->inOverdue = 0;
} catch (QueryException $e) {
return $this->handleQueryException($e);
}

return new TaskCollection($response);
}

/**
* Display the specified resource.
* @TODO remove this method,view and route this is not a used file
Expand Down
199 changes: 199 additions & 0 deletions ProcessMaker/Http/Controllers/CasesController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
<?php

namespace ProcessMaker\Http\Controllers;

use Facades\ProcessMaker\RollbackProcessRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use ProcessMaker\Cache\CacheRemember;
use ProcessMaker\Events\FilesDownloaded;
use ProcessMaker\Events\ScreenBuilderStarting;
use ProcessMaker\Filters\SaveSession;
use ProcessMaker\Helpers\DefaultColumns;
use ProcessMaker\Helpers\MobileHelper;
use ProcessMaker\Http\Controllers\Controller;
use ProcessMaker\Managers\DataManager;
use ProcessMaker\Managers\ScreenBuilderManager;
use ProcessMaker\Models\Comment;
use ProcessMaker\Models\Process;
use ProcessMaker\Models\ProcessRequest;
use ProcessMaker\Models\ProcessRequestToken;
use ProcessMaker\Models\Screen;
use ProcessMaker\Models\ScreenVersion;
use ProcessMaker\Models\UserResourceView;
use ProcessMaker\Package\PackageComments\PackageServiceProvider;
use ProcessMaker\ProcessTranslations\ProcessTranslation;
use ProcessMaker\RetryProcessRequest;
use ProcessMaker\Traits\HasControllerAddons;
use ProcessMaker\Traits\SearchAutocompleteTrait;
use Spatie\MediaLibrary\MediaCollections\Models\Media;

class CasesController extends Controller
{
/**
* Get the list of requests.
*
* @return \Illuminate\View\View|\Illuminate\Contracts\View
*/
public function index($type = null)
{
// This is a temporary API the engine team will provide the new
return view('cases.casesMain');
}
/**
* Cases Detail
*
* @param ProcessRequest $request
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function edit(ProcessRequest $request)
{
if (!request()->input('skipInterstitial') && $request->status === 'ACTIVE') {
$startEvent = $request->tokens()->orderBy('id')->first();
if ($startEvent) {
$definition = $startEvent->getDefinition();
$allowInterstitial = false;
if (isset($definition['allowInterstitial'])) {
$allowInterstitial = filter_var(
$definition['allowInterstitial'],
FILTER_VALIDATE_BOOLEAN,
FILTER_NULL_ON_FAILURE
);
}
if ($allowInterstitial && $request->user_id == Auth::id() && request()->has('fromTriggerStartEvent')) {
$active = $request->tokens()
->where('user_id', Auth::id())
->where('element_type', 'task')
->where('status', 'ACTIVE')
->orderBy('id')->first();

// If the interstitial is enabled on the start event, then use it as the task
if ($active) {
$task = $allowInterstitial ? $startEvent : $active;
} else {
$task = $startEvent;
}

return redirect(route('tasks.edit', [
'task' => $task->getKey(),
]));
}
}
}

$userHasCommentsForRequest = Comment::where('commentable_type', ProcessRequest::class)
->where('commentable_id', $request->id)
->where('body', 'like', '%{{' . \Auth::user()->id . '}}%')
->count() > 0;

$requestMedia = $request->media()->get()->pluck('id');

$userHasCommentsForMedia = Comment::where('commentable_type', \ProcessMaker\Models\Media::class)
->whereIn('commentable_id', $requestMedia)
->where('body', 'like', '%{{' . \Auth::user()->id . '}}%')
->count() > 0;

if (!$userHasCommentsForMedia && !$userHasCommentsForRequest) {
$this->authorize('view', $request);
}

$request->participants;
$request->user;
$request->summary = $request->summary();

if ($request->status === 'CANCELED' && $request->process->cancel_screen_id) {
$request->summary_screen = $request->process->cancelScreen;
} else {
$request->summary_screen = $request->getSummaryScreen();
}
$request->request_detail_screen = Screen::find($request->process->request_detail_screen_id);

$canCancel = Auth::user()->can('cancel', $request->processVersion);
$canViewComments = (Auth::user()->hasPermissionsFor('comments')->count() > 0) || class_exists(PackageServiceProvider::class);
$canManuallyComplete = Auth::user()->is_administrator && $request->status === 'ERROR';
$canRetry = false;

if ($canManuallyComplete) {
$retry = RetryProcessRequest::for($request);

$canRetry = $retry->hasRetriableTasks() &&
!$retry->hasNonRetriableTasks() &&
!$retry->isChildRequest();
}

$files = \ProcessMaker\Models\Media::getFilesRequest($request);

$canPrintScreens = $this->canUserPrintScreen($request);

$manager = app(ScreenBuilderManager::class);
event(new ScreenBuilderStarting($manager, ($request->summary_screen) ? $request->summary_screen->type : 'FORM'));

$addons = [];
$dataActionsAddons = [];

$isProcessManager = $request->process?->manager_id === Auth::user()->id;

$eligibleRollbackTask = null;
$errorTask = RollbackProcessRequest::getErrorTask($request);
if ($errorTask) {
$eligibleRollbackTask = RollbackProcessRequest::eligibleRollbackTask($errorTask);
}
$this->summaryScreenTranslation($request);
return view('cases.edit', compact(
'request',
'files',
'canCancel',
'canViewComments',
'canManuallyComplete',
'canRetry',
'manager',
'canPrintScreens',
'addons',
'isProcessManager',
'eligibleRollbackTask',
'errorTask',
));
}

/**
* the user may or may not print forms
*
* @param ProcessRequest $request
* @return bool
*/
private function canUserPrintScreen(ProcessRequest $request)
{
//validate user is administrator
if (Auth::user()->is_administrator) {
return true;
}

//validate user is participant or requester
if (in_array(Auth::user()->id, $request->participants()->get()->pluck('id')->toArray())) {
return true;
}

// Any user with permissions Edit Request Data, Edit Task Data and view All Requests
if (Auth::user()->can('view-all_requests') && Auth::user()->can('edit-request_data') && Auth::user()->can('edit-task_data')) {
return true;
}

return false;
}

/**
* Translates the summary screen strings
* @param ProcessRequest $request
* @return void
*/
public function summaryScreenTranslation(ProcessRequest $request): void
{
if ($request->summary_screen) {
$processTranslation = new ProcessTranslation($request->process);
$translatedConf = $processTranslation->applyTranslations($request->summary_screen);
$request->summary_screen['config'] = $translatedConf;
}
}
}
2 changes: 1 addition & 1 deletion ProcessMaker/Http/Controllers/RequestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public function index($type = null)
$this->authorize('view-all_requests');
}

$title = 'My Cases';
$title = 'My Request';

$types = ['all'=>'All Requests', 'in_progress'=>'Requests In Progress', 'completed'=>'Completed Requests'];

Expand Down
44 changes: 36 additions & 8 deletions ProcessMaker/Http/Middleware/GenerateMenus.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ public function handle(Request $request, Closure $next)
['route' => 'process.browser.index', 'id' => 'process-browser']
)->active('process-browser/*');
});
$menu->group(['prefix' => 'requests'], function ($request_items) {
$menu->group(['prefix' => 'cases'], function ($request_items) {
$request_items->add(
__('Cases'),
['route' => 'cases.index', 'id' => 'requests']
['route' => 'cases-main.index', 'id' => 'cases']
)->active('cases/*');
});
//@TODO change the index to the correct blade
Expand Down Expand Up @@ -140,25 +140,53 @@ public function handle(Request $request, Closure $next)
$submenu = $menu->add(__('Processes'));
});
Menu::make('sidebar_request', function ($menu) {
$submenu = $menu->add(__('Cases'));
$submenu->add(__('My Cases'), [
'route' => ['cases_by_type', ''],
$submenu = $menu->add(__('Requests'));
$submenu->add(__('My Requests'), [
'route' => ['requests_by_type', ''],
'icon' => 'fa-id-badge',
]);
$submenu->add(__('In Progress'), [
'route' => ['cases_by_type', 'in_progress'],
'route' => ['requests_by_type', 'in_progress'],
'icon' => 'fa-clipboard-list',
]);
$submenu->add(__('Completed'), [
'route' => ['cases_by_type', 'completed'],
'route' => ['requests_by_type', 'completed'],
'icon' => 'fa-clipboard-check',
]);
if (\Auth::check() && \Auth::user()->can('view-all_requests')) {
$submenu->add(__('All Requests'), [
'route' => ['requests_by_type', 'all'],
'icon' => 'fa-clipboard',
]);
}
});

Menu::make('sidebar_cases', function ($menu) {
$submenu = $menu->add(__('Cases'));
$submenu->add(__('My Cases'), [
'route' => ['cases-main.index', ''],
'icon' => 'fa-user',
]);
$submenu->add(__('In Progress'), [
'route' => ['cases-main.index', 'in_progress'],
'icon' => 'fa-list',
]);
$submenu->add(__('Completed'), [
'route' => ['cases-main.index', 'completed'],
'icon' => 'fa-check-circle',
]);
if (\Auth::check() && \Auth::user()->can('view-all_cases')) {
$submenu->add(__('All Cases'), [
'route' => ['cases_by_type', 'all'],
'route' => ['cases-main.index', 'all'],
'icon' => 'fa-clipboard',
]);
}
if (\Auth::check() && \Auth::user()->can('view-my_requests')) {
$submenu->add(__('My Requests'), [
'route' => ['requests_by_type', ''],
'icon' => 'fa-play',
]);
}
});

Menu::make('sidebar_processes', function ($menu) {
Expand Down
Loading
Loading