2017-03-16 23:35:29 +00:00
{{ -- Copyright ( c ) 2015 - 2017 Dane Everitt < dane @ daneeveritt . com > -- }}
{{ -- Permission is hereby granted , free of charge , to any person obtaining a copy -- }}
{{ -- of this software and associated documentation files ( the " Software " ), to deal -- }}
{{ -- in the Software without restriction , including without limitation the rights -- }}
{{ -- to use , copy , modify , merge , publish , distribute , sublicense , and / or sell -- }}
{{ -- copies of the Software , and to permit persons to whom the Software is -- }}
{{ -- furnished to do so , subject to the following conditions : -- }}
{{ -- The above copyright notice and this permission notice shall be included in all -- }}
{{ -- copies or substantial portions of the Software . -- }}
{{ -- THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR -- }}
{{ -- IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY , -- }}
{{ -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE -- }}
{{ -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER -- }}
{{ -- LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM , -- }}
{{ -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -- }}
{{ -- SOFTWARE . -- }}
@ extends ( 'layouts.admin' )
@ section ( 'title' )
Database Hosts
@ endsection
@ section ( 'content-header' )
< h1 > Database Hosts < small > Database hosts that servers can have databases created on .</ small ></ h1 >
< ol class = " breadcrumb " >
< li >< a href = " { { route('admin.index') }} " > Admin </ a ></ li >
< li class = " active " > Database Hosts </ li >
</ ol >
@ endsection
@ section ( 'content' )
< div class = " row " >
< div class = " col-xs-12 " >
< div class = " box box-primary " >
< div class = " box-header with-border " >
< h3 class = " box-title " > Host List </ h3 >
2017-03-18 20:25:36 +00:00
< div class = " box-tools " >
< button class = " btn btn-sm btn-primary " data - toggle = " modal " data - target = " #newHostModal " > Create New </ button >
</ div >
2017-03-16 23:35:29 +00:00
</ div >
< div class = " box-body table-responsive no-padding " >
< table class = " table table-hover " >
< tbody >
< tr >
< th > ID </ th >
< th > Name </ th >
< th > Host </ th >
< th > Port </ th >
< th > Username </ th >
< th class = " text-center " > Databases </ th >
< th class = " text-center " > Node </ th >
</ tr >
@ foreach ( $hosts as $host )
< tr >
< td >< code > {{ $host -> id }} </ code ></ td >
< td >< a href = " { { route('admin.databases.view', $host->id ) }} " > {{ $host -> name }} </ a ></ td >
< td >< code > {{ $host -> host }} </ code ></ td >
< td >< code > {{ $host -> port }} </ code ></ td >
< td > {{ $host -> username }} </ td >
< td class = " text-center " > {{ $host -> databases_count }} </ td >
< td class = " text-center " >
@ if ( ! is_null ( $host -> node ))
< a href = " { { route('admin.nodes.view', $host->node ->id) }} " > {{ $host -> node -> name }} </ a >
@ else
< span class = " label label-default " > None </ span >
@ endif
</ td >
</ tr >
@ endforeach
</ tbody >
</ table >
</ div >
</ div >
</ div >
</ div >
< div class = " modal fade " id = " newHostModal " tabindex = " -1 " role = " dialog " >
< div class = " modal-dialog " role = " document " >
< div class = " modal-content " >
< form action = " { { route('admin.databases') }} " method = " POST " >
< div class = " modal-header " >
< button type = " button " class = " close " data - dismiss = " modal " aria - label = " Close " >< span aria - hidden = " true " >& times ; </ span ></ button >
< h4 class = " modal-title " > Create New Database Host </ h4 >
</ div >
< div class = " modal-body " >
< div class = " form-group " >
< label for = " pName " class = " form-label " > Name </ label >
< input type = " text " name = " name " id = " pName " class = " form-control " />
< p class = " text-muted small " > A short identifier used to distinguish this location from others . Must be between 1 and 60 characters , for example , < code > us . nyc . lvl3 </ code >.</ p >
</ div >
< div class = " row " >
< div class = " col-md-6 " >
< label for = " pHost " class = " form-label " > Host </ label >
< input type = " text " name = " host " id = " pHost " class = " form-control " />
< p class = " text-muted small " > The IP address or FQDN that should be used when attempting to connect to this MySQL host < em > from the panel </ em > to add new databases .</ p >
</ div >
< div class = " col-md-6 " >
< label for = " pPort " class = " form-label " > Port </ label >
< input type = " text " name = " port " id = " pPort " class = " form-control " value = " 3306 " />
< p class = " text-muted small " > The port that MySQL is running on for this host .</ p >
</ div >
</ div >
< div class = " row " >
< div class = " col-md-6 " >
< label for = " pUsername " class = " form-label " > Username </ label >
< input type = " text " name = " username " id = " pUsername " class = " form-control " />
< p class = " text-muted small " > The username of an account that has enough permissions to create new users and databases on the system .</ p >
</ div >
< div class = " col-md-6 " >
< label for = " pPassword " class = " form-label " > Password </ label >
< input type = " password " name = " password " id = " pPassword " class = " form-control " />
< p class = " text-muted small " > The password to the account defined .</ p >
</ div >
</ div >
< div class = " form-group " >
< label for = " pNodeId " class = " form-label " > Linked Node </ label >
< select name = " node_id " id = " pNodeId " class = " form-control " >
2017-07-22 18:55:30 +00:00
< option value = " null " > None </ option >
2017-03-16 23:35:29 +00:00
@ foreach ( $locations as $location )
< optgroup label = " { { $location->short }} " >
@ foreach ( $location -> nodes as $node )
< option value = " { { $node->id }} " > {{ $node -> name }} </ option >
@ endforeach
</ optgroup >
@ endforeach
</ select >
< p class = " text-muted small " > This setting does nothing other than default to this database host when adding a database to a server on the selected node .</ p >
</ div >
</ div >
< div class = " modal-footer " >
< p class = " text-danger small text-left " > The account defined for this database host < strong > must </ strong > have the < code > WITH GRANT OPTION </ code > permission . If the defined account does not have this permission requests to create databases < em > will </ em > fail . < strong > Do not use the same account details for MySQL that you have defined for this panel .</ strong ></ p >
{ !! csrf_field () !! }
< button type = " button " class = " btn btn-default btn-sm pull-left " data - dismiss = " modal " > Cancel </ button >
< button type = " submit " class = " btn btn-success btn-sm " > Create </ button >
</ div >
</ form >
</ div >
</ div >
</ div >
@ endsection
@ section ( 'footer-scripts' )
@ parent
< script >
$ ( '#pNodeId' ) . select2 ();
</ script >
@ endsection