More additions to server creation page.

Adds memory/disk/etc. fields as well as selecting the service type and
option. Still need to add in the ability to set the variables once an
option is selected.
This commit is contained in:
Dane Everitt 2015-12-08 18:34:18 -05:00
parent e77cea6f99
commit f47f0cd549
6 changed files with 189 additions and 21 deletions

View file

@ -5,6 +5,7 @@ namespace Pterodactyl\Http\Controllers\Admin;
use Debugbar;
use Pterodactyl\Models\Allocation;
use Pterodactyl\Models\Node;
use Pterodactyl\Models\ServiceOptions;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Http\Request;
@ -24,6 +25,12 @@ class AjaxController extends Controller
}
/**
* Returns a JSON tree of all avaliable nodes in a given location.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View
*/
public function postNewServerGetNodes(Request $request)
{
@ -33,10 +40,16 @@ class AjaxController extends Controller
], 500);
}
return response(Node::select('id', 'name', 'public')->where('location', $request->input('location'))->get()->toJson());
return response()->json(Node::select('id', 'name', 'public')->where('location', $request->input('location'))->get());
}
/**
* Returns a JSON tree of all avaliable IPs and Ports on a given node.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View
*/
public function postNewServerGetIps(Request $request)
{
@ -60,4 +73,23 @@ class AjaxController extends Controller
}
/**
* Returns a JSON tree of all avaliable options for a given service.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View
*/
public function postNewServerServiceOptions(Request $request)
{
if(!$request->input('service')) {
return response()->json([
'error' => 'Missing service in request.'
], 500);
}
return response()->json(ServiceOptions::select('id', 'name')->where('parent_service', $request->input('service'))->orderBy('name', 'asc')->get());
}
}

View file

@ -4,8 +4,8 @@ namespace Pterodactyl\Http\Controllers\Admin;
use Debugbar;
use Pterodactyl\Models\Server;
use Pterodactyl\Models\Node;
use Pterodactyl\Models\Location;
use Pterodactyl\Models\Service;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Http\Request;
@ -38,7 +38,8 @@ class ServersController extends Controller
public function getNew(Request $request)
{
return view('admin.servers.new', [
'locations' => Location::all()
'locations' => Location::all(),
'services' => Service::all()
]);
}

View file

@ -28,6 +28,7 @@ class AdminRoutes {
$router->group(['prefix' => 'ajax'], function ($server) use ($router) {
$router->post('/new/server/get-nodes', [ 'uses' => 'Admin\AjaxController@postNewServerGetNodes' ]);
$router->post('/new/server/get-ips', [ 'uses' => 'Admin\AjaxController@postNewServerGetIps' ]);
$router->post('/new/server/service-options', [ 'uses' => 'Admin\AjaxController@postNewServerServiceOptions' ]);
});
});