Skip to content

Commit 7f76684

Browse files
committed
More schedule changes
1 parent 457c910 commit 7f76684

File tree

20 files changed

+365
-348
lines changed

20 files changed

+365
-348
lines changed

app/Http/Controllers/Server/TaskController.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ public function index(Request $request, $uuid)
4848
$this->authorize('list-tasks', $server);
4949
$server->js();
5050

51-
return view('server.tasks.index', [
51+
return view('server.schedules.index', [
5252
'server' => $server,
5353
'node' => $server->node,
5454
'tasks' => $server->tasks,
5555
'actions' => [
56-
'command' => trans('server.tasks.actions.command'),
57-
'power' => trans('server.tasks.actions.power'),
56+
'command' => trans('server.schedules.actions.command'),
57+
'power' => trans('server.schedules.actions.power'),
5858
],
5959
]);
6060
}
@@ -72,7 +72,7 @@ public function create(Request $request, $uuid)
7272
$this->authorize('create-task', $server);
7373
$server->js();
7474

75-
return view('server.tasks.new', [
75+
return view('server.schedules.new', [
7676
'server' => $server,
7777
'node' => $server->node,
7878
]);
@@ -96,17 +96,17 @@ public function store(Request $request, $uuid)
9696
'_token',
9797
]));
9898

99-
return redirect()->route('server.tasks', $uuid);
99+
return redirect()->route('server.schedules', $uuid);
100100
} catch (DisplayValidationException $ex) {
101-
return redirect()->route('server.tasks.new', $uuid)->withErrors(json_decode($ex->getMessage()))->withInput();
101+
return redirect()->route('server.schedules.new', $uuid)->withErrors(json_decode($ex->getMessage()))->withInput();
102102
} catch (DisplayException $ex) {
103103
Alert::danger($ex->getMessage())->flash();
104104
} catch (\Exception $ex) {
105105
Log::error($ex);
106106
Alert::danger('An unknown error occured while attempting to create this task.')->flash();
107107
}
108108

109-
return redirect()->route('server.tasks.new', $uuid);
109+
return redirect()->route('server.schedules.new', $uuid);
110110
}
111111

112112
/**

app/Http/Controllers/Server/Tasks/TaskManagementController.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
namespace Pterodactyl\Http\Controllers\Server\Tasks;
2626

27+
use Illuminate\Http\Request;
2728
use Prologue\Alerts\AlertsMessageBag;
28-
use Pterodactyl\Http\Requests\Request;
2929
use Illuminate\Contracts\Session\Session;
3030
use Pterodactyl\Http\Controllers\Controller;
3131
use Pterodactyl\Contracts\Extensions\HashidsInterface;
@@ -99,11 +99,11 @@ public function index()
9999
$this->authorize('list-schedules', $server);
100100
$this->injectJavascript();
101101

102-
return view('server.tasks.index', [
102+
return view('server.schedules.index', [
103103
'schedules' => $this->repository->getServerSchedules($server->id),
104104
'actions' => [
105-
'command' => trans('server.tasks.actions.command'),
106-
'power' => trans('server.tasks.actions.power'),
105+
'command' => trans('server.schedule.actions.command'),
106+
'power' => trans('server.schedule.actions.power'),
107107
],
108108
]);
109109
}
@@ -121,7 +121,7 @@ public function create()
121121
$this->authorize('create-schedule', $server);
122122
$this->injectJavascript();
123123

124-
return view('server.tasks.new');
124+
return view('server.schedules.new');
125125
}
126126

127127
/**
@@ -138,9 +138,9 @@ public function store(ScheduleCreationFormRequest $request)
138138
$this->authorize('create-schedule', $server);
139139

140140
$schedule = $this->creationService->handle($server, $request->normalize(), $request->getTasks());
141-
$this->alert->success(trans('server.tasks.task_created'))->flash();
141+
$this->alert->success(trans('server.schedules.task_created'))->flash();
142142

143-
return redirect()->route('server.tasks.view', [
143+
return redirect()->route('server.schedules.view', [
144144
'server' => $server->uuidShort,
145145
'task' => $schedule->hashid,
146146
]);
@@ -149,7 +149,7 @@ public function store(ScheduleCreationFormRequest $request)
149149
/**
150150
* Return a view to modify a schedule.
151151
*
152-
* @param \Pterodactyl\Http\Requests\Request $request
152+
* @param \Illuminate\Http\Request $request
153153
* @return \Illuminate\View\View
154154
* @throws \Illuminate\Auth\Access\AuthorizationException
155155
*/
@@ -165,7 +165,7 @@ public function view(Request $request)
165165
}),
166166
]);
167167

168-
return view('server.tasks.view', ['schedule' => $schedule]);
168+
return view('server.schedules.view', ['schedule' => $schedule]);
169169
}
170170

171171
/**
@@ -183,9 +183,9 @@ public function update(ScheduleCreationFormRequest $request)
183183
$this->authorize('edit-schedule', $server);
184184

185185
// $this->updateService->handle($task, $request->normalize(), $request->getChainedTasks());
186-
$this->alert->success(trans('server.tasks.task_updated'))->flash();
186+
// $this->alert->success(trans('server.schedules.task_updated'))->flash();
187187

188-
return redirect()->route('server.tasks.view', [
188+
return redirect()->route('server.schedules.view', [
189189
'server' => $server->uuidShort,
190190
'task' => $schedule->hashid,
191191
]);
@@ -194,7 +194,7 @@ public function update(ScheduleCreationFormRequest $request)
194194
/**
195195
* Delete a parent task from the Panel.
196196
*
197-
* @param \Pterodactyl\Http\Requests\Request $request
197+
* @param \Illuminate\Http\Request $request
198198
* @return \Illuminate\Http\RedirectResponse
199199
*
200200
* @throws \Illuminate\Auth\Access\AuthorizationException
@@ -205,7 +205,7 @@ public function delete(Request $request)
205205
$schedule = $request->attributes->get('schedule');
206206
$this->authorize('delete-schedule', $server);
207207

208-
$this->repository->delete($task->id);
208+
$this->repository->delete($schedule->id);
209209

210210
return response('', 204);
211211
}

app/Http/Middleware/Server/ScheduleAccess.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ public function handle($request, Closure $next)
7777
{
7878
$server = $this->session->get('server_data.model');
7979

80-
$scheduleId = $this->hashids->decodeFirst($request->route()->parameter('task'), 0);
80+
$scheduleId = $this->hashids->decodeFirst($request->route()->parameter('schedule'), 0);
8181
$schedule = $this->repository->getScheduleWithTasks($scheduleId);
8282

83-
if ($schedule->server_id !== $server->id) {
83+
if (object_get($schedule, 'server_id') !== $server->id) {
8484
abort(404);
8585
}
8686

app/Http/Requests/Server/ScheduleCreationFormRequest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ public function rules()
4242
'cron_hour' => 'required|string',
4343
'cron_minute' => 'required|string',
4444
'tasks' => 'sometimes|array|size:4',
45-
'tasks.time_value' => 'required_with:chain|max:5',
46-
'tasks.time_interval' => 'required_with:chain|max:5',
47-
'tasks.action' => 'required_with:chain|max:5',
48-
'tasks.payload' => 'required_with:chain|max:5',
49-
'tasks.time_value.*' => 'numeric|between:1,60',
45+
'tasks.time_value' => 'required_with:tasks|max:5',
46+
'tasks.time_interval' => 'required_with:tasks|max:5',
47+
'tasks.action' => 'required_with:tasks|max:5',
48+
'tasks.payload' => 'required_with:tasks|max:5',
49+
'tasks.time_value.*' => 'numeric|between:0,59',
5050
'tasks.time_interval.*' => 'string|in:s,m',
5151
'tasks.action.*' => 'string|in:power,command',
5252
'tasks.payload.*' => 'string',

app/Models/Permission.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,13 @@ class Permission extends Model implements CleansAttributes
106106
'download-files' => null,
107107
],
108108
'task' => [
109-
'list-tasks' => null,
110-
'view-task' => null,
111-
'toggle-task' => null,
112-
'queue-task' => null,
113-
'create-task' => null,
114-
'delete-task' => null,
109+
'list-schedules' => null,
110+
'view-schedule' => null,
111+
'toggle-schedule' => null,
112+
'queue-schedule' => null,
113+
'edit-schedule' => null,
114+
'create-schedule' => null,
115+
'delete-schedule' => null,
115116
],
116117
'database' => [
117118
'view-databases' => null,

app/Models/Task.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class Task extends Model implements CleansAttributes, ValidableContract
5555
*/
5656
protected $fillable = [
5757
'schedule_id',
58-
'squence_id',
58+
'sequence_id',
5959
'action',
6060
'payload',
6161
'time_offset',
@@ -70,7 +70,7 @@ class Task extends Model implements CleansAttributes, ValidableContract
7070
protected $casts = [
7171
'id' => 'integer',
7272
'schedule_id' => 'integer',
73-
'squence_id' => 'integer',
73+
'sequence_id' => 'integer',
7474
'time_offset' => 'integer',
7575
'is_queued' => 'boolean',
7676
];
@@ -89,7 +89,7 @@ class Task extends Model implements CleansAttributes, ValidableContract
8989
*/
9090
protected static $applicationRules = [
9191
'schedule_id' => 'required',
92-
'squence_id' => 'required',
92+
'sequence_id' => 'required',
9393
'action' => 'required',
9494
'payload' => 'required',
9595
'time_offset' => 'required',
@@ -100,7 +100,7 @@ class Task extends Model implements CleansAttributes, ValidableContract
100100
*/
101101
protected static $dataIntegrityRules = [
102102
'schedule_id' => 'numeric|exists:schedules,id',
103-
'squence_id' => 'numeric|min:1',
103+
'sequence_id' => 'numeric|min:1',
104104
'action' => 'string',
105105
'payload' => 'string',
106106
'time_offset' => 'numeric|between:0,900',
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
use Illuminate\Support\Facades\DB;
4+
use Illuminate\Database\Migrations\Migration;
5+
6+
class UpdateOldPermissionsToPointToNewScheduleSystem extends Migration
7+
{
8+
/**
9+
* Run the migrations.
10+
*/
11+
public function up()
12+
{
13+
$permissions = DB::table('permissions')->where('permission', 'like', '%-task%')->get();
14+
foreach ($permissions as $record) {
15+
$parts = explode('-', $record->permission);
16+
if (! in_array(array_get($parts, 1), ['tasks', 'task']) || count($parts) !== 2) {
17+
continue;
18+
}
19+
20+
$newPermission = $parts[0] . '-' . str_replace('task', 'schedule', $parts[1]);
21+
22+
DB::table('permissions')->where('id', '=', $record->id)->update(['permission' => $newPermission]);
23+
}
24+
}
25+
26+
/**
27+
* Reverse the migrations.
28+
*/
29+
public function down()
30+
{
31+
$permissions = DB::table('permissions')->where('permission', 'like', '%-schedule%')->get();
32+
foreach ($permissions as $record) {
33+
$parts = explode('-', $record->permission);
34+
if (! in_array(array_get($parts, 1), ['schedules', 'schedule']) || count($parts) !== 2) {
35+
continue;
36+
}
37+
38+
$newPermission = $parts[0] . '-' . str_replace('schedule', 'task', $parts[1]);
39+
40+
DB::table('permissions')->where('id', '=', $record->id)->update(['permission' => $newPermission]);
41+
}
42+
}
43+
}

public/js/laroute.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/themes/pterodactyl/js/frontend/tasks/management-actions.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,24 @@
1919
// SOFTWARE.
2020

2121
$(document).ready(function () {
22-
$('[data-action="delete-task"]').click(function () {
22+
$('[data-action="delete-schedule"]').click(function () {
2323
var self = $(this);
2424
swal({
2525
type: 'error',
26-
title: 'Delete Task?',
27-
text: 'Are you sure you want to delete this task? There is no undo.',
26+
title: 'Delete Schedule?',
27+
text: 'Are you sure you want to delete this schedule? There is no undo.',
2828
showCancelButton: true,
2929
allowOutsideClick: true,
3030
closeOnConfirm: false,
31-
confirmButtonText: 'Delete Task',
31+
confirmButtonText: 'Delete Schedule',
3232
confirmButtonColor: '#d9534f',
3333
showLoaderOnConfirm: true
3434
}, function () {
3535
$.ajax({
3636
method: 'DELETE',
37-
url: Router.route('server.tasks.delete', {
37+
url: Router.route('server.schedules.delete', {
3838
server: Pterodactyl.server.uuidShort,
39-
task: self.data('taskid'),
39+
schedule: self.data('schedule-id'),
4040
}),
4141
headers: {
4242
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),
@@ -45,26 +45,26 @@ $(document).ready(function () {
4545
swal({
4646
type: 'success',
4747
title: '',
48-
text: 'Task has been deleted.'
48+
text: 'Schedule has been deleted.'
4949
});
5050
self.parent().parent().slideUp();
5151
}).fail(function (jqXHR) {
5252
console.error(jqXHR);
5353
swal({
5454
type: 'error',
5555
title: 'Whoops!',
56-
text: 'An error occured while attempting to delete this task.'
56+
text: 'An error occured while attempting to delete this schedule.'
5757
});
5858
});
5959
});
6060
});
6161

62-
$('[data-action="toggle-task"]').click(function (event) {
62+
$('[data-action="toggle-schedule"]').click(function (event) {
6363
var self = $(this);
6464
swal({
6565
type: 'info',
66-
title: 'Toggle Task',
67-
text: 'This will toggle the selected task.',
66+
title: 'Toggle Schedule',
67+
text: 'This will toggle the selected schedule.',
6868
showCancelButton: true,
6969
allowOutsideClick: true,
7070
closeOnConfirm: false,
@@ -73,9 +73,9 @@ $(document).ready(function () {
7373
}, function () {
7474
$.ajax({
7575
method: 'POST',
76-
url: Router.route('server.tasks.toggle', {
76+
url: Router.route('server.schedules.toggle', {
7777
server: Pterodactyl.server.uuidShort,
78-
task: self.data('taskid'),
78+
schedule: self.data('schedule-id'),
7979
}),
8080
headers: {
8181
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),
@@ -84,7 +84,7 @@ $(document).ready(function () {
8484
swal({
8585
type: 'success',
8686
title: '',
87-
text: 'Task has been toggled.'
87+
text: 'Schedule has been toggled.'
8888
});
8989
if (data.status !== 1) {
9090
self.parent().parent().addClass('muted muted-hover');
@@ -96,7 +96,7 @@ $(document).ready(function () {
9696
swal({
9797
type: 'error',
9898
title: 'Whoops!',
99-
text: 'An error occured while attempting to toggle this task.'
99+
text: 'An error occured while attempting to toggle this schedule.'
100100
});
101101
});
102102
});

public/themes/pterodactyl/js/frontend/tasks/view-actions.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
$(document).ready(function () {
2222
function setupSelect2() {
23-
$('select[name="chain[time_value][]"]').select2();
24-
$('select[name="chain[time_interval][]"]').select2();
25-
$('select[name="chain[action][]"]').select2();
23+
$('select[name="tasks[time_value][]"]').select2();
24+
$('select[name="tasks[time_interval][]"]').select2();
25+
$('select[name="tasks[action][]"]').select2();
2626
}
2727

2828
setupSelect2();

0 commit comments

Comments
 (0)