add typeahead support for owner email when adding new server

closes #144
pic: http://s3.pterodactyl.io/UpPSJ.png
This commit is contained in:
Dane Everitt 2016-10-21 15:22:47 -04:00
parent f9f751b7f2
commit bef717b202
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
6 changed files with 55 additions and 0 deletions

View file

@ -10,6 +10,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
* Support for filtering servers within Admin CP to narrow down results by name, email, allocation, or defined fields. * Support for filtering servers within Admin CP to narrow down results by name, email, allocation, or defined fields.
* Setup scripts (user, mail, env) now support argument flags for use in containers and other non-terminal environments. * Setup scripts (user, mail, env) now support argument flags for use in containers and other non-terminal environments.
* New API endpoints for individual users to control their servers with at `/api/me/*`. * New API endpoints for individual users to control their servers with at `/api/me/*`.
* Typeahead support for owner email when adding a new server.
### Changed ### Changed
* Creating a user, server, or node now returns `HTTP/1.1 200` and a JSON element with the user/server/node's ID. * Creating a user, server, or node now returns `HTTP/1.1 200` and a JSON element with the user/server/node's ID.

View file

@ -63,6 +63,8 @@ Socket.io - [license](https://github.com/socketio/socket.io/blob/master/LICENSE)
SweetAlert - [license](https://github.com/t4t5/sweetalert/blob/master/LICENSE) - [homepage](http://t4t5.github.io/sweetalert/) SweetAlert - [license](https://github.com/t4t5/sweetalert/blob/master/LICENSE) - [homepage](http://t4t5.github.io/sweetalert/)
Typeahead — [license](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.js) — [homepage](https://github.com/bassjobsen/Bootstrap-3-Typeahead)
### Additional License Information ### Additional License Information
Some Javascript and CSS used within the panel is licensed under a `MIT` or `Apache 2.0`. Please check their respective header files for more information. Some Javascript and CSS used within the panel is licensed under a `MIT` or `Apache 2.0`. Please check their respective header files for more information.

View file

@ -130,4 +130,12 @@ class UserController extends Controller
return redirect()->route('admin.users.view', $user); return redirect()->route('admin.users.view', $user);
} }
public function getJson(Request $request)
{
foreach(User::select('email')->get() as $user) {
$resp[] = $user->email;
}
return $resp;
}
} }

View file

@ -73,6 +73,11 @@ class AdminRoutes {
'uses' => 'Admin\UserController@getIndex' 'uses' => 'Admin\UserController@getIndex'
]); ]);
$router->get('/accounts.json', [
'as' => 'admin.users.json',
'uses' => 'Admin\UserController@getJson'
]);
// View Specific Account // View Specific Account
$router->get('/view/{id}', [ $router->get('/view/{id}', [
'as' => 'admin.users.view', 'as' => 'admin.users.view',

File diff suppressed because one or more lines are too long

View file

@ -23,6 +23,11 @@
Create New Server Create New Server
@endsection @endsection
@section('scripts')
@parent
{!! Theme::js('js/vendor/typeahead/typeahead.min.js') !!}
@endsection
@section('content') @section('content')
<div class="col-md-12"> <div class="col-md-12">
<ul class="breadcrumb"> <ul class="breadcrumb">
@ -44,6 +49,8 @@
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="owner" class="control-label">Owner Email</label> <label for="owner" class="control-label">Owner Email</label>
<div> <div>
{{-- Hacky workaround to prevent Safari and Chrome from trying to suggest emails here --}}
<input id="fake_user_name" name="fake_user[name]" style="position:absolute; top:-10000px;" type="text" value="Autofill Me">
<input type="text" autocomplete="off" name="owner" class="form-control" value="{{ old('owner', Input::get('email')) }}" /> <input type="text" autocomplete="off" name="owner" class="form-control" value="{{ old('owner', Input::get('email')) }}" />
</div> </div>
</div> </div>
@ -253,6 +260,17 @@ $(document).ready(function () {
$('input[name="custom_image_name"]').val('').prop('disabled', !($(this).is(':checked'))); $('input[name="custom_image_name"]').val('').prop('disabled', !($(this).is(':checked')));
}); });
// Typeahead
$.ajax({
type: 'GET',
url: '{{ route('admin.users.json') }}',
}).done(function (data) {
$('input[name="owner"]').typeahead({ fitToElement: true, source: data });
}).fail(function (jqXHR) {
alert('Could not initialize user email typeahead.')
console.log(jqXHR);
});
var nodeData = null; var nodeData = null;
var currentLocation = null; var currentLocation = null;
var currentNode = null; var currentNode = null;