function str2Obj(str){
var data = {};
kv = str.split('&');
for(i in kv){
v = kv[i].split('=');
data[v[0]] = v[1];
}
return data;
}
function rsPost(method,args,callback, title){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
var _title = '正在获取...';
if (typeof(title) != 'undefined'){
_title = title;
}
var loadT = layer.msg(_title, { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'rsyncd', func:method, args:_args}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
///////////////// ----------------- 发送配置 ---------------- //////////////
function createSendTask(){
layer.open({
type: 1,
area: ['600px','500px'],
title: "创建发送任务",
closeBtn: 1,
shift: 0,
shadeClose: false,
btn: ['提交','取消'],
content:"
",
success:function(){
$('[data-toggle="tooltip"]').tooltip();
$(".conn-user").hide();
$("select[name='conn_type']").change(function(){
if($(this).val() == 'key'){
$(".conn-user").hide();
$(".conn-key").show();
}else{
$(".conn-user").show();
$(".conn-key").hide();
}
});
},
yes:function(){
var args = {};
args['ip'] = $('input[name="ip"]').val();
args['path'] = $('input[name="path"]').val();
args['delete'] = $('input[name="delete"]').val();
args['realtime'] = $('input[name="realtime"]').val();
args['bwlimit'] = $('input[name="bwlimit"]').val();
args['conn_type'] = $('input[name="conn_type"]').val();
args['compress'] = $('input[name="compress"]').val();
console.log(args);
rsPost('lsyncd_add', args, function(rdata){
console.log(rdata);
});
return false;
}
});
}
function rsyncdSend(){
rsPost('lsyncd_list', '', function(data){
var rdata = $.parseJSON(data.data);
console.log(rdata);
if (!rdata.status){
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000,shade: [0.3, '#000']});
return;
}
var list = rdata.data.list;
var con = '';
con += '\
\
\
\
';
con += '';
con += '';
con += '名称(标识) | ';
con += '源目录 | ';
con += '同步到 | ';
con += '模式 | ';
con += '周期 | ';
con += '操作 | ';
con += '
';
con += '';
for (var i = 0; i < list.length; i++) {
con += ''+
'' + "dd"+' | ' +
'' + list[i]['path']+' | ' +
'' + list[i]['ip']+":"+"cc"+' | ' +
'' + "增量"+' | ' +
'' + "实时" +' | ' +
'\
同步\
| 日志\
| 过滤器\
| 编辑\
| 删除\
| \
';
}
con += '';
con += '
';
$(".soft-man-con").html(con);
});
}
///////////////// ----------------- 接收配置 ---------------- //////////////
function rsyncdConf(){
rsPost('conf', {}, function(rdata){
rpath = rdata['data'];
if (rdata['status']){
onlineEditFile(0, rpath);
} else {
layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']});
}
});
}
function rsyncdLog(){
pluginStandAloneLogs("rsyncd","","run_log");
}
function rsyncdReceive(){
rsPost('rec_list', '', function(data){
var rdata = $.parseJSON(data.data);
if (!rdata.status){
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000,shade: [0.3, '#000']});
return;
}
// console.log(rdata);
var list = rdata.data;
var con = '';
con += '\
\
\
';
con += '';
con += '';
con += '服务名 | ';
con += '路径 | ';
con += '备注 | ';
con += '操作(添加) | ';
con += '
';
con += '';
//编辑
for (var i = 0; i < list.length; i++) {
con += ''+
'' + list[i]['name']+' | ' +
'' + list[i]['path']+' | ' +
'' + list[i]['comment']+' | ' +
'\
命令\
| 密钥\
| 编辑\
| 删除 | \
';
}
con += '';
con += '
';
$(".soft-man-con").html(con);
});
}
function addReceive(name = ""){
rsPost('get_rec',{"name":name},function(rdata) {
var rdata = $.parseJSON(rdata.data);
var data = rdata.data;
var readonly = "";
if (name !=""){
readonly = 'readonly="readonly"'
}
var loadOpen = layer.open({
type: 1,
title: '创建接收',
area: '400px',
btn:['确认','取消'],
content:"",
success:function(layero, index){},
yes:function(){
var args = {};
args['name'] = $('#name').val();
args['pwd'] = $('#MyPassword').val();
args['path'] = $('#inputPath').val();
args['ps'] = $('#ps').val();
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
rsPost('add_rec', args, function(data){
var rdata = $.parseJSON(data.data);
layer.close(loadOpen);
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000,shade: [0.3, '#000']});
setTimeout(function(){rsyncdReceive();},2000);
});
}
});
})
}
function delReceive(name){
safeMessage('删除['+name+']', '您真的要删除['+name+']吗?', function(){
var _data = {};
_data['name'] = name;
rsPost('del_rec', _data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000,shade: [0.3, '#000']});
setTimeout(function(){rsyncdReceive();},2000);
});
});
}
function cmdRecSecretKey(name){
var _data = {};
_data['name'] = name;
rsPost('cmd_rec_secret_key', _data, function(data){
var rdata = $.parseJSON(data.data);
layer.open({
type: 1,
title: '接收密钥',
area: '400px',
content:""
});
});
}
function cmdRecCmd(name){
var _data = {};
_data['name'] = name;
rsPost('cmd_rec_cmd', _data, function(data){
var rdata = $.parseJSON(data.data);
layer.open({
type: 1,
title: '接收命令例子',
area: '400px',
content:""+rdata.data+"
"
});
});
}
function rsRead(){
var readme = '';
readme += '- 如需将其他服务器数据同步到本地服务器,请在接受配置中 "创建接收任务"
';
readme += '- 如果开启防火墙,需要放行873端口
';
readme += '
';
$('.soft-man-con').html(readme);
}