Skip to content

Commit a179d57

Browse files
authored
Making route binding more unique to help with external conflicts (#403)
* Making route binding more unique to help with external conflicts
1 parent 837273b commit a179d57

File tree

9 files changed

+22
-22
lines changed

9 files changed

+22
-22
lines changed

resources/views/tasks/form.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@
250250
@section('main-panel-footer')
251251
<button class="uk-button uk-button-primary uk-button-small" type="submit">Save</button>
252252
@if($task->exists)
253-
<a href="{{ route('totem.task.view', $task) }}" class="uk-button uk-button-secondary uk-button-small">Cancel</a>
253+
<a href="{{ route('totem.task.view', ['totemTask' => $task]) }}" class="uk-button uk-button-secondary uk-button-small">Cancel</a>
254254
@else
255255
<a href="{{ route('totem.tasks.all') }}" class="uk-button uk-button-secondary uk-button-small">Cancel</a>
256256
@endif

resources/views/tasks/index.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ class="uk-search-input">
3737
@forelse($tasks as $task)
3838
<tr is="task-row"
3939
:data-task="{{$task}}"
40-
showHref="{{route('totem.task.view', $task)}}"
41-
executeHref="{{route('totem.task.execute', $task)}}">
40+
showHref="{{route('totem.task.view', ['totemTask' => $task])}}"
41+
executeHref="{{route('totem.task.execute', ['totemTask' => $task])}}">
4242
</tr>
4343
@empty
4444
<tr>

resources/views/tasks/view.blade.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@section('title')
77
<div class="uk-flex uk-flex-between uk-flex-middle">
88
<h5 class="uk-card-title uk-margin-remove">Task Details</h5>
9-
<status-button :data-task="{{ $task }}" :data-exists="{{ $task->exists ? 'true' : 'false' }}" activate-url="{{route('totem.task.activate')}}" deactivate-url="{{route('totem.task.deactivate', $task)}}"></status-button>
9+
<status-button :data-task="{{ $task }}" :data-exists="{{ $task->exists ? 'true' : 'false' }}" activate-url="{{route('totem.task.activate')}}" deactivate-url="{{route('totem.task.deactivate', ['totemTask' => $task])}}"></status-button>
1010
</div>
1111
@stop
1212
@section('main-panel-content')
@@ -86,15 +86,15 @@
8686
@section('main-panel-footer')
8787
<div class="uk-flex uk-flex-between uk-flex-middle">
8888
<span>
89-
<a href="{{ route('totem.task.edit', $task) }}" class="uk-button uk-button-primary uk-button-small">Edit</a>
90-
<form class="uk-display-inline" action="{{route('totem.task.delete', $task)}}" method="post">
89+
<a href="{{ route('totem.task.edit', ['totemTask' => $task]) }}" class="uk-button uk-button-primary uk-button-small">Edit</a>
90+
<form class="uk-display-inline" action="{{route('totem.task.delete', ['totemTask' => $task])}}" method="post">
9191
{{ csrf_field() }}
9292
{{ method_field('delete') }}
9393
<button type="submit" class="uk-button uk-button-danger uk-button-small">Delete</button>
9494
</form>
9595
<a href="{{ route('totem.tasks.all') }}" class="uk-button uk-button-secondary uk-button-small">Cancel</a>
9696
</span>
97-
<execute-button :data-task="{{ $task }}" url="{{route('totem.task.execute', $task)}}" button-class="uk-button-small uk-button-primary"></execute-button>
97+
<execute-button :data-task="{{ $task }}" url="{{route('totem.task.execute', ['totemTask' => $task])}}" button-class="uk-button-small uk-button-primary"></execute-button>
9898
</div>
9999
@stop
100100
@section('additional-panels')

routes/web.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
Route::get('export', 'ExportTasksController@index')->name('totem.tasks.export');
1919
Route::post('import', 'ImportTasksController@index')->name('totem.tasks.import');
2020

21-
Route::get('{task}', 'TasksController@view')->name('totem.task.view');
21+
Route::get('{totemTask}', 'TasksController@view')->name('totem.task.view');
2222

23-
Route::get('{task}/edit', 'TasksController@edit')->name('totem.task.edit');
24-
Route::post('{task}/edit', 'TasksController@update');
23+
Route::get('{totemTask}/edit', 'TasksController@edit')->name('totem.task.edit');
24+
Route::post('{totemTask}/edit', 'TasksController@update');
2525

26-
Route::delete('{task}', 'TasksController@destroy')->name('totem.task.delete');
26+
Route::delete('{totemTask}', 'TasksController@destroy')->name('totem.task.delete');
2727

2828
Route::post('status', 'ActiveTasksController@store')->name('totem.task.activate');
29-
Route::delete('status/{id}', 'ActiveTasksController@destroy')->name('totem.task.deactivate');
29+
Route::delete('status/{totemTask}', 'ActiveTasksController@destroy')->name('totem.task.deactivate');
3030

31-
Route::get('{task}/execute', 'ExecuteTasksController@index')->name('totem.task.execute');
31+
Route::get('{totemTask}/execute', 'ExecuteTasksController@index')->name('totem.task.execute');
3232
});

src/Http/Controllers/TasksController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public function update(TaskRequest $request, Task $task): RedirectResponse
131131
{
132132
$task = $this->tasks->update($request->all(), $task);
133133

134-
return redirect()->route('totem.task.view', $task)
134+
return redirect()->route('totem.task.view', ['totemTask' => $task])
135135
->with('task', $task)
136136
->with('success', trans('totem::messages.success.update'));
137137
}

src/Providers/TotemRouteServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function boot()
2626
{
2727
parent::boot();
2828

29-
Route::bind('task', function ($value) {
29+
Route::bind('totemTask', function ($value) {
3030
return cache()->rememberForever('totem.task.'.$value, function () use ($value) {
3131
return Task::find($value) ?? abort(404);
3232
});

tests/Feature/EditTaskTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public function test_user_can_view_edit_task_form()
1111
{
1212
$this->disableExceptionHandling()->signIn();
1313
$task = Task::factory()->create();
14-
$response = $this->get(route('totem.task.edit', $task));
14+
$response = $this->get(route('totem.task.edit', ['totemTask' => $task]));
1515
$response->assertStatus(200);
1616
$response->assertSee($task->description);
1717
$response->assertSee($task->expression);
@@ -20,22 +20,22 @@ public function test_user_can_view_edit_task_form()
2020
public function test_guest_can_not_view_edit_task_form()
2121
{
2222
$task = Task::factory()->create();
23-
$response = $this->get(route('totem.task.edit', $task));
23+
$response = $this->get(route('totem.task.edit', ['totemTask' => $task]));
2424
$response->assertStatus(403);
2525
}
2626

2727
public function test_user_can_edit_task()
2828
{
2929
$this->disableExceptionHandling()->signIn();
3030
$task = Task::factory()->create();
31-
$response = $this->post(route('totem.task.edit', $task), [
31+
$response = $this->post(route('totem.task.edit', ['totemTask' => $task]), [
3232
'description' => 'List All Scheduled Commands',
3333
'command' => 'Studio\Totem\Console\Commands\ListSchedule',
3434
'type' => 'cron',
3535
'expression' => '5 * * * *',
3636
]);
3737

3838
$response->assertSessionHas('task');
39-
$response->assertRedirect(route('totem.task.view', $task));
39+
$response->assertRedirect(route('totem.task.view', ['totemTask' => $task]));
4040
}
4141
}

tests/Feature/TaskExecutionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function test_it_executes_a_scheduled_task()
4242
Event::fake();
4343

4444
$this->signIn()
45-
->get(route('totem.task.execute', $task->id))
45+
->get(route('totem.task.execute', ['totemTask' => $task]))
4646
->assertSuccessful();
4747

4848
$this->assertEquals(1, Result::count());

tests/Feature/ViewTaskTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public function test_user_can_view_task()
1111
{
1212
$this->signIn();
1313
$task = Task::factory()->create();
14-
$response = $this->get(route('totem.task.view', $task));
14+
$response = $this->get(route('totem.task.view', ['totemTask' => $task]));
1515
$response->assertStatus(200);
1616
$response->assertSee($task->description);
1717
$response->assertSee('Studio\Totem\Console\Commands\ListSchedule');
@@ -21,7 +21,7 @@ public function test_user_can_view_task()
2121
public function test_guest_can_not_view_task()
2222
{
2323
$task = Task::factory()->create();
24-
$response = $this->get(route('totem.task.view', $task));
24+
$response = $this->get(route('totem.task.view', ['totemTask' => $task]));
2525
$response->assertStatus(403);
2626
}
2727
}

0 commit comments

Comments
 (0)