Update
This commit is contained in:
parent
fc39111d1a
commit
bf7244b273
@ -12,10 +12,8 @@
|
|||||||
//
|
//
|
||||||
//= require jquery
|
//= require jquery
|
||||||
//= require bootstrap-sprockets
|
//= require bootstrap-sprockets
|
||||||
|
|
||||||
//= require jquery_ujs
|
//= require jquery_ujs
|
||||||
//= require turbolinks
|
//= require turbolinks
|
||||||
|
|
||||||
//= require js/bootstrap.min.js
|
//= require js/bootstrap.min.js
|
||||||
//= require js/flot/jquery.flot.js
|
//= require js/flot/jquery.flot.js
|
||||||
//= require js/flot/jquery.flot.pie.js
|
//= require js/flot/jquery.flot.pie.js
|
||||||
@ -26,7 +24,6 @@
|
|||||||
//= require js/flot/jquery.flot.stack.js
|
//= require js/flot/jquery.flot.stack.js
|
||||||
//= require js/flot/curvedLines.js
|
//= require js/flot/curvedLines.js
|
||||||
//= require js/flot/jquery.flot.resize.js
|
//= require js/flot/jquery.flot.resize.js
|
||||||
|
|
||||||
//= require js/progressbar/bootstrap-progressbar.min.js
|
//= require js/progressbar/bootstrap-progressbar.min.js
|
||||||
//= require js/icheck/icheck.min.js
|
//= require js/icheck/icheck.min.js
|
||||||
//= require js/moment/moment.min.js
|
//= require js/moment/moment.min.js
|
||||||
@ -35,8 +32,10 @@
|
|||||||
//= require js/pace/pace.min.js
|
//= require js/pace/pace.min.js
|
||||||
//= require js/nprogress.js
|
//= require js/nprogress.js
|
||||||
//= require flash.js
|
//= require flash.js
|
||||||
//= require js/knob/jquery.knob.min.js
|
|
||||||
//= require js/dropzone/dropzone.js
|
//= require js/dropzone/dropzone.js
|
||||||
|
//= require js/validator/validator.js
|
||||||
|
//= require js/easypie/jquery.easypiechart.min.js
|
||||||
|
|
||||||
|
|
||||||
// Datatables
|
// Datatables
|
||||||
|
|
||||||
@ -53,9 +52,3 @@
|
|||||||
//= require js/datatables/dataTables.responsive.min.js
|
//= require js/datatables/dataTables.responsive.min.js
|
||||||
//= require js/datatables/responsive.bootstrap.min.js
|
//= require js/datatables/responsive.bootstrap.min.js
|
||||||
//= require js/datatables/dataTables.scroller.min.js
|
//= require js/datatables/dataTables.scroller.min.js
|
||||||
|
|
||||||
// Right Click Event
|
|
||||||
|
|
||||||
//= require contextmenu
|
|
||||||
|
|
||||||
//= require js/validator/validator.js
|
|
@ -16,14 +16,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//Right Click Event
|
//Right Click Event
|
||||||
@import "contextmenu";
|
|
||||||
@import "loading";
|
@import "loading";
|
||||||
|
|
||||||
@import "bootstrap-sprockets";
|
@import "bootstrap-sprockets";
|
||||||
@import "bootstrap";
|
@import "bootstrap";
|
||||||
|
|
||||||
@import "font-awesome";
|
@import "font-awesome";
|
||||||
|
|
||||||
@import "css/animate.min";
|
@import "css/animate.min";
|
||||||
@import "css/custom";
|
@import "css/custom";
|
||||||
@import "css/icheck/flat/green";
|
@import "css/icheck/flat/green";
|
||||||
@ -35,7 +31,6 @@
|
|||||||
@import "pace";
|
@import "pace";
|
||||||
|
|
||||||
//DataTable
|
//DataTable
|
||||||
|
|
||||||
@import "js/datatables/jquery.dataTables.min";
|
@import "js/datatables/jquery.dataTables.min";
|
||||||
@import "js/datatables/buttons.bootstrap.min";
|
@import "js/datatables/buttons.bootstrap.min";
|
||||||
@import "js/datatables/responsive.bootstrap.min";
|
@import "js/datatables/responsive.bootstrap.min";
|
||||||
|
@ -2,7 +2,6 @@ class HomeController < ApplicationController
|
|||||||
before_action :require_login
|
before_action :require_login
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
|
||||||
@current_dir = "/mnt"
|
@current_dir = "/mnt"
|
||||||
file_directory(@current_dir)
|
file_directory(@current_dir)
|
||||||
end
|
end
|
||||||
@ -28,7 +27,6 @@ class HomeController < ApplicationController
|
|||||||
redirect_to '/home/index'
|
redirect_to '/home/index'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def delete_file
|
def delete_file
|
||||||
file_name = params[:file_name]
|
file_name = params[:file_name]
|
||||||
# delete file
|
# delete file
|
||||||
|
@ -4,7 +4,6 @@ class NodeController < ApplicationController
|
|||||||
def index
|
def index
|
||||||
@hosts = Array.new
|
@hosts = Array.new
|
||||||
@nodes = Node.all.order("id asc")
|
@nodes = Node.all.order("id asc")
|
||||||
|
|
||||||
if get_hosts.blank?
|
if get_hosts.blank?
|
||||||
flash[:danger] = "Check Server"
|
flash[:danger] = "Check Server"
|
||||||
else
|
else
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
|
|
||||||
def get_conf
|
def get_conf
|
||||||
config = Hash.new
|
conf = Hash.new
|
||||||
one_node = Node.take
|
node = Node.take
|
||||||
if !one_node.nil?
|
if !node.nil?
|
||||||
config["host_name"] = one_node.host_name
|
conf["host_name"] = node.host_name
|
||||||
config["host_ip"] = one_node.host_ip
|
conf["host_ip"] = node.host_ip
|
||||||
config["user_name"] = one_node.user_name
|
conf["user_name"] = node.user_name
|
||||||
config["user_password"] = one_node.user_password
|
conf["user_password"] = node.user_password
|
||||||
end
|
end
|
||||||
return config
|
return conf
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_conf_all
|
def get_conf_all
|
||||||
config = Array.new
|
conf_all = Array.new
|
||||||
config_each = Hash.new
|
conf = Hash.new
|
||||||
all_node = Node.all
|
nodes = Node.all
|
||||||
all_node.each do |one_node|
|
nodes.each do |node|
|
||||||
config_each["host_name"] = one_node.host_name
|
conf["host_name"] = node.host_name
|
||||||
config_each["host_ip"] = one_node.host_ip
|
conf["host_ip"] = node.host_ip
|
||||||
config_each["user_name"] = one_node.user_name
|
conf["user_name"] = node.user_name
|
||||||
config_each["user_password"] = one_node.user_password
|
conf["user_password"] = node.user_password
|
||||||
config << config_each
|
conf_all << conf
|
||||||
config_each = Hash.new
|
conf = Hash.new
|
||||||
end
|
end
|
||||||
return config
|
return conf_all
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_df
|
def get_df
|
||||||
@ -49,4 +49,44 @@ module ApplicationHelper
|
|||||||
return df
|
return df
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def users
|
||||||
|
users = User.all
|
||||||
|
return users
|
||||||
|
end
|
||||||
|
|
||||||
|
def nodes
|
||||||
|
nodes = Node.all
|
||||||
|
return nodes
|
||||||
|
end
|
||||||
|
|
||||||
|
def volumes
|
||||||
|
volumes = Array.new
|
||||||
|
volume = Hash.new
|
||||||
|
conf = get_conf
|
||||||
|
df = get_df
|
||||||
|
command = String.new
|
||||||
|
command << "sshpass -p#{conf['user_password']} "
|
||||||
|
command << "ssh #{conf['user_name']}@#{conf['host_ip']} "
|
||||||
|
command << "gluster volume info"
|
||||||
|
puts command
|
||||||
|
output = `#{command}`.split("\n")
|
||||||
|
output << "\n"
|
||||||
|
output.each do |t|
|
||||||
|
next if t.equal? output.first
|
||||||
|
if t.include? ":"
|
||||||
|
temp = t.split(":")
|
||||||
|
volume[temp[0]] = temp[1]
|
||||||
|
else
|
||||||
|
volume['Mount State'] = "unmounted"
|
||||||
|
df.each do |u|
|
||||||
|
next if !u['Filesystem'].include? volume['Volume Name'].delete(' ')
|
||||||
|
volume['Mount State'] = "mounted"
|
||||||
|
volume['Mount Point'] = u['Mounted on']
|
||||||
|
end
|
||||||
|
volumes << volume
|
||||||
|
volume = Hash.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return volumes
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,36 +1,5 @@
|
|||||||
module VolumeHelper
|
module VolumeHelper
|
||||||
|
|
||||||
def volumes
|
|
||||||
volumes = Array.new
|
|
||||||
volume = Hash.new
|
|
||||||
conf = get_conf
|
|
||||||
df = get_df
|
|
||||||
command = String.new
|
|
||||||
command << "sshpass -p#{conf['user_password']} "
|
|
||||||
command << "ssh #{conf['user_name']}@#{conf['host_ip']} "
|
|
||||||
command << "gluster volume info"
|
|
||||||
puts command
|
|
||||||
output = `#{command}`.split("\n")
|
|
||||||
output << "\n"
|
|
||||||
output.each do |t|
|
|
||||||
next if t.equal? output.first
|
|
||||||
if t.include? ":"
|
|
||||||
temp = t.split(":")
|
|
||||||
volume[temp[0]] = temp[1]
|
|
||||||
else
|
|
||||||
volume['Mount State'] = "unmounted"
|
|
||||||
df.each do |u|
|
|
||||||
next if !u['Filesystem'].include? volume['Volume Name'].delete(' ')
|
|
||||||
volume['Mount State'] = "mounted"
|
|
||||||
volume['Mount Point'] = u['Mounted on']
|
|
||||||
end
|
|
||||||
volumes << volume
|
|
||||||
volume = Hash.new
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return volumes
|
|
||||||
end
|
|
||||||
|
|
||||||
def volume_info(volume)
|
def volume_info(volume)
|
||||||
params = ['Type', 'Volume ID', 'Status', 'Number of Bricks', 'Transport-type', 'Bricks', 'Options Reconfigured', 'Mount State', 'Mount Point']
|
params = ['Type', 'Volume ID', 'Status', 'Number of Bricks', 'Transport-type', 'Bricks', 'Options Reconfigured', 'Mount State', 'Mount Point']
|
||||||
html = ''
|
html = ''
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<!-- create overlay page -->
|
<!-- create overlay page -->
|
||||||
|
|
||||||
<div id="popup_mkdir" class="overlay">
|
<div id="popup_mkdir" class="overlay">
|
||||||
<div class="popup">
|
<div class="popup">
|
||||||
<h2> Make Directory </h2>
|
<h2> Make Directory </h2>
|
||||||
@ -33,47 +34,44 @@
|
|||||||
<div class="page-title">
|
<div class="page-title">
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
<div class="row">
|
|
||||||
<!-- top tiles -->
|
<!-- top tiles -->
|
||||||
<div class="row tile_count">
|
<div class="row tile_count">
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
<div class="left"></div>
|
<div class="left"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<span class="count_top"><i class="fa fa-user"></i> Total Users</span>
|
<span class="count_top"><i class="fa fa-clock-o"></i> Current signed in</span>
|
||||||
<div class="count">2500</div>
|
<div class="count"><%= current_user.current_sign_in_at.strftime("%a, %H:%M") %></div>
|
||||||
<span class="count_bottom"><i class="green">4% </i> From last Week</span>
|
<span class="count_bottom"> From <i class="green"><%= current_user.current_sign_in_ip %></i></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
<div class="left"></div>
|
<div class="left"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<span class="count_top"><i class="fa fa-clock-o"></i> Average Time</span>
|
<span class="count_top"><i class="fa fa-clock-o"></i> Last signed in</span>
|
||||||
<div class="count">123.50</div>
|
<div class="count"><%= current_user.last_sign_in_at.strftime("%a, %H:%M") %></div>
|
||||||
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>3% </i> From last Week</span>
|
<span class="count_bottom"> From <i class="red"><%= current_user.last_sign_in_ip %></i></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
<div class="left"></div>
|
<div class="left"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<span class="count_top"><i class="fa fa-user"></i> Total Males</span>
|
<span class="count_top"><i class="fa fa-user"></i> Members</span>
|
||||||
<div class="count green">2,500</div>
|
<div class="count"><%= users.length %></div>
|
||||||
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>34% </i> From last Week</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
<div class="left"></div>
|
<div class="left"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<span class="count_top"><i class="fa fa-user"></i> Total Females</span>
|
<span class="count_top"><i class="fa fa-cubes"></i> Total Nodes</span>
|
||||||
<div class="count">4,567</div>
|
<div class="count"><%= nodes.length %></div>
|
||||||
<span class="count_bottom"><i class="red"><i class="fa fa-sort-desc"></i>12% </i> From last Week</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
<div class="left"></div>
|
<div class="left"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<span class="count_top"><i class="fa fa-user"></i> Total Collections</span>
|
<span class="count_top"><i class="fa fa-database"></i> Total volumes</span>
|
||||||
<div class="count">2,315</div>
|
<div class="count"><%= volumes.length %></div>
|
||||||
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>34% </i> From last Week</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
<div class="animated flipInY col-md-2 col-sm-4 col-xs-4 tile_stats_count">
|
||||||
@ -87,8 +85,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- /top tiles -->
|
<!-- /top tiles -->
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
<!-- file manager -->
|
<!-- file manager -->
|
||||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
<div class="col-md-8 col-sm-8 col-xs-12">
|
||||||
<div class="x_panel">
|
<div class="x_panel">
|
||||||
<div class="x_title">
|
<div class="x_title">
|
||||||
<h2>File Manager</h2>
|
<h2>File Manager</h2>
|
||||||
@ -158,10 +157,42 @@
|
|||||||
<!-- /file manager -->
|
<!-- /file manager -->
|
||||||
|
|
||||||
<!-- disk usage -->
|
<!-- disk usage -->
|
||||||
|
<div class="col-md-4 col-sm-4 col-xs-12">
|
||||||
|
<div class="panel panel-body">
|
||||||
|
<div class="x_title">
|
||||||
|
<h4>Easy Pie Chart</h4>
|
||||||
|
</div>
|
||||||
|
<p>Easy pie chart is a jQuery plugin that uses the canvas element to render highly customizable, very easy to implement, simple pie charts for single values.</p>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<span class="chart" data-percent="86">
|
||||||
|
<span class="percent"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<span class="chart" data-percent="73">
|
||||||
|
<span class="percent"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<span class="chart" data-percent="60">
|
||||||
|
<span class="percent"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /disk usage -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="row">
|
||||||
|
<!-- node status -->
|
||||||
<div class="col-md-4 col-sm-4 col-xs-12">
|
<div class="col-md-4 col-sm-4 col-xs-12">
|
||||||
<div class="x_panel tile fixed_height_320">
|
<div class="x_panel tile fixed_height_320">
|
||||||
<div class="x_title">
|
<div class="x_title">
|
||||||
<h2>App Versions</h2>
|
<h2>Nodes</h2>
|
||||||
<ul class="nav navbar-right panel_toolbox">
|
<ul class="nav navbar-right panel_toolbox">
|
||||||
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
||||||
</li>
|
</li>
|
||||||
@ -174,8 +205,6 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="close-link"><i class="fa fa-close"></i></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -266,7 +295,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /disk usage -->
|
<!-- /node status -->
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -349,9 +379,60 @@ function change_directory(directory){
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- On document ready -->
|
<!-- On document ready -->
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#datatable').dataTable( {"bSort": false});
|
$('#datatable').dataTable( {"bSort": false});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- Easy pie chart -->
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
$('.chart').easyPieChart({
|
||||||
|
easing: 'easeOutBounce',
|
||||||
|
lineWidth: '6',
|
||||||
|
barColor: '#75BCDD',
|
||||||
|
onStep: function(from, to, percent) {
|
||||||
|
$(this.el).find('.percent').text(Math.round(percent));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var chart = window.chart = $('.chart').data('easyPieChart');
|
||||||
|
$('.js_update').on('click', function() {
|
||||||
|
chart.update(Math.random() * 200 - 100);
|
||||||
|
});
|
||||||
|
|
||||||
|
//hover and retain popover when on popover content
|
||||||
|
var originalLeave = $.fn.popover.Constructor.prototype.leave;
|
||||||
|
$.fn.popover.Constructor.prototype.leave = function(obj) {
|
||||||
|
var self = obj instanceof this.constructor ?
|
||||||
|
obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
|
||||||
|
var container, timeout;
|
||||||
|
|
||||||
|
originalLeave.call(this, obj);
|
||||||
|
|
||||||
|
if (obj.currentTarget) {
|
||||||
|
container = $(obj.currentTarget).siblings('.popover')
|
||||||
|
timeout = self.timeout;
|
||||||
|
container.one('mouseenter', function() {
|
||||||
|
//We entered the actual popover – call off the dogs
|
||||||
|
clearTimeout(timeout);
|
||||||
|
//Let's monitor popover content instead
|
||||||
|
container.one('mouseleave', function() {
|
||||||
|
$.fn.popover.Constructor.prototype.leave.call(self, self);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$('body').popover({
|
||||||
|
selector: '[data-popover]',
|
||||||
|
trigger: 'click hover',
|
||||||
|
delay: {
|
||||||
|
show: 50,
|
||||||
|
hide: 400
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@ -37,7 +37,8 @@
|
|||||||
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Host Name <span class="required">*</span>
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Host Name <span class="required">*</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
<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">
|
<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>
|
</div>
|
||||||
|
|
||||||
@ -45,7 +46,8 @@
|
|||||||
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="ip">Host IP <span class="required">*</span>
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="ip">Host IP <span class="required">*</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
<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">
|
<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>
|
</div>
|
||||||
|
|
||||||
@ -53,13 +55,15 @@
|
|||||||
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">User Name <span class="required">*</span>
|
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">User Name <span class="required">*</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||||
<input id="occupation" type="text" name="user_name" required="required" data-validate-length-range="5,20" class="form-control col-md-7 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>
|
</div>
|
||||||
<div class="item form-group">
|
<div class="item form-group">
|
||||||
<label for="password" class="control-label col-md-3">User Password <span class="required">*</span></label>
|
<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">
|
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||||
<input id="password" type="password" name="user_password" data-validate-length="1,10" class="form-control col-md-7 col-xs-12" required="required">
|
<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>
|
</div>
|
||||||
<!--<div class="ln_solid"></div>-->
|
<!--<div class="ln_solid"></div>-->
|
||||||
|
Loading…
Reference in New Issue
Block a user