203 lines
9.2 KiB
Plaintext
203 lines
9.2 KiB
Plaintext
<!-- page content -->
|
|
<div class="right_col" role="main">
|
|
|
|
<div class="page-title">
|
|
<div class="title_left"><h3>Peer</h3></div>
|
|
<div class="title_right">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
<div class="row">
|
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
|
<div class="x_panel">
|
|
<div class="x_title">
|
|
<h2><i class="fa fa-plus-square-o"></i> Add Node</h2>
|
|
<ul class="nav navbar-right panel_toolbox">
|
|
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
|
</li>
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
|
|
<ul class="dropdown-menu" role="menu">
|
|
<li><a href="#">Settings 1</a>
|
|
</li>
|
|
<li><a href="#">Settings 2</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="clearfix"></div>
|
|
</div>
|
|
<div class="x_content">
|
|
|
|
<form class="form-horizontal form-label-left" action="/node/add" method="post" novalidate>
|
|
<div class="item form-group">
|
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Host Name <span class="required">*</span>
|
|
</label>
|
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
|
<input id="name" class="form-control col-md-7 col-xs-12" data-validate-length-range="10" data-validate-words="1" name="host_name" placeholder="Host Name" required="required" type="text"
|
|
data-toggle="tooltip" data-placement="top" title="Put node's representative name">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item form-group">
|
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="ip">Host IP <span class="required">*</span>
|
|
</label>
|
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
|
<input id="ip" class="form-control col-md-7 col-xs-12" data-validate-length-range="10" data-validate-words="1" name="host_ip" placeholder="127.0.0.1" required="required" type="text"
|
|
data-toggle="tooltip" data-placement="top" title="Put node's ip">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item form-group">
|
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">User Name <span class="required">*</span>
|
|
</label>
|
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
|
<input id="occupation" type="text" name="user_name" placeholder="root" required="required" data-validate-length-range="5,20" class="form-control col-md-7 col-xs-12"
|
|
data-toggle="tooltip" data-placement="top" title="Put user name for ssh connection. client must have ssh key">
|
|
</div>
|
|
</div>
|
|
<div class="item form-group">
|
|
<label for="password" class="control-label col-md-3">User Password <span class="required">*</span></label>
|
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
|
<input id="password" type="password" name="user_password" placeholder="secret" data-validate-length="1,10" class="form-control col-md-7 col-xs-12" required="required"
|
|
data-toggle="tooltip" data-placement="top" title="Put user password for ssh connection. client must have ssh key">
|
|
</div>
|
|
</div>
|
|
<!--<div class="ln_solid"></div>-->
|
|
<div class="form-group">
|
|
<div class="col-md-6 col-md-offset-3">
|
|
<button type="submit" class="btn btn-primary">Cancel</button>
|
|
<button id="send" type="submit" class="btn btn-success">Add</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12 col-sm-12 col-xs-12">
|
|
<div class="x_panel">
|
|
<div class="x_title">
|
|
<h2><i class="fa fa-align-left"></i> Node List <small>Try hovering over the rows</small></h2>
|
|
<ul class="nav navbar-right panel_toolbox">
|
|
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
|
</li>
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
|
|
<ul class="dropdown-menu" role="menu">
|
|
<li><a href="#">Settings 1</a>
|
|
</li>
|
|
<li><a href="#">Settings 2</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="clearfix"></div>
|
|
</div>
|
|
<div class="x_content">
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Ping</th> <!-- Ping-->
|
|
<th>Status</th>
|
|
<th>Host Name</th>
|
|
<th>Host IP</th>
|
|
<th>User Name</th>
|
|
<th>Date</th>
|
|
<th></th> <!-- Delete-->
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<%@nodes.each do |t|%>
|
|
<tr>
|
|
<%if ping_test?(t.host_ip)%>
|
|
<td><i class="fa fa-circle-o green"></i></a></td>
|
|
<td><input type="checkbox" class="js-switch prove" value="<%=t.id%>" checked/>Attached</td>
|
|
<%else%>
|
|
<td><i class="fa fa-close red"></i></a></td>
|
|
<td><input type="checkbox" class="js-switch" disabled/></td>
|
|
<%end%>
|
|
<th scope="row"><%=t.host_name%></th>
|
|
<td><%=t.host_ip%></td>
|
|
<td><%=t.user_name%></td>
|
|
<td><%=t.created_at%></td>
|
|
<td><a href="/node/delete/<%=t.id%>"><i class="fa fa-trash"></i></a></td>
|
|
</tr>
|
|
<%end%>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /page content -->
|
|
<script>
|
|
$('.prove').change(function() {
|
|
$(location).attr('href',"#loading");
|
|
if($(this).is(":checked")) {
|
|
$.ajax({
|
|
method: "POST",
|
|
url: "/node/prove",
|
|
data: { node_id : this.value },
|
|
success : function(result){
|
|
$(location).attr('href',"#");
|
|
}
|
|
})
|
|
} else {
|
|
$.ajax({
|
|
method: "POST",
|
|
url: "/node/detach",
|
|
data: { node_id : this.value },
|
|
success : function(result){
|
|
$(location).attr('href',"#");
|
|
}
|
|
})
|
|
}
|
|
});
|
|
|
|
// initialize the validator function
|
|
validator.message['date'] = 'not a real date';
|
|
|
|
// validate a field on "blur" event, a 'select' on 'change' event & a '.reuired' classed multifield on 'keyup':
|
|
$('form')
|
|
.on('blur', 'input[required], input.optional, select.required', validator.checkField)
|
|
.on('change', 'select.required', validator.checkField)
|
|
.on('keypress', 'input[required][pattern]', validator.keypress);
|
|
|
|
$('.multi.required')
|
|
.on('keyup blur', 'input', function() {
|
|
validator.checkField.apply($(this).siblings().last()[0]);
|
|
});
|
|
|
|
// bind the validation to the form submit event
|
|
//$('#send').click('submit');//.prop('disabled', true);
|
|
|
|
$('form').submit(function(e) {
|
|
e.preventDefault();
|
|
var submit = true;
|
|
// evaluate the form using generic validaing
|
|
if (!validator.checkAll($(this))) {
|
|
submit = false;
|
|
}
|
|
|
|
if (submit)
|
|
this.submit();
|
|
return false;
|
|
});
|
|
|
|
/* FOR DEMO ONLY */
|
|
$('#vfields').change(function() {
|
|
$('form').toggleClass('mode2');
|
|
}).prop('checked', false);
|
|
|
|
$('#alerts').change(function() {
|
|
validator.defaults.alerts = (this.checked) ? false : true;
|
|
if (this.checked)
|
|
$('form .alert').remove();
|
|
}).prop('checked', false);
|
|
</script>
|