Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mdserver-web/plugins/pureftp/js/ftp.js

323 lines
11 KiB

6 years ago
function str2Obj(str){
var data = {};
kv = str.split('&');
for(i in kv){
v = kv[i].split('=');
data[v[0]] = v[1];
}
return data;
}
6 years ago
function ftpPost(method,args,callback){
6 years ago
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
6 years ago
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
6 years ago
$.post('/plugins/run', {name:'pureftp', func:method, args:_args}, function(data) {
6 years ago
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');
}
6 years ago
6 years ago
function ftpAsyncPost(method,args){
return syncPost('/plugins/run',
{name:'pureftp', func:method, args:JSON.stringify(args)}
);
}
6 years ago
function ftpListFind(){
var search = $('#ftp_find_user').val();
if (search==''){
layer.msg('搜索字符不能为空!',{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
ftpList(1, search);
}
6 years ago
function ftpList(page, search){
6 years ago
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
ftpPost('get_ftp_list', _data, function(data){
var rdata = $.parseJSON(data.data);
6 years ago
// console.log(rdata);
6 years ago
content = '<div class="info-title-tips"><p><span class="glyphicon glyphicon-alert" style="color: #f39c12; margin-right: 10px;"></span>当前FTP地址为:ftp://'+rdata['info']['ip']+':'+rdata['info']['port']+'</p></div>';
6 years ago
content += '<div class="finduser"><input class="bt-input-text mr5 outline_no" type="text" placeholder="查找用户名" id="ftp_find_user" style="height: 28px; border-radius: 3px;width: 605px;">';
content += '<button class="btn btn-success btn-sm" onclick="ftpListFind();">查找</button></div>';
6 years ago
content += '<div class="divtable" style="margin-top:5px;"><table class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0">';
content += '<thead><tr>';
6 years ago
content += '<th style="width:10%;overflow:hidden;">用户名</th>';
content += '<th style="width:10%;overflow:hidden;">密码</th>';
content += '<th style="width:10%;">状态</th>';
6 years ago
content += '<th>根目录</th>';
content += '<th>备注</th>';
6 years ago
content += '<th>操作(<a class="btlink" onclick="addFtp(0);">添加</a>|<a class="btlink" onclick="modFtpPort(0,\''+rdata['info']['port']+'\')">端口</a>)</th>';
6 years ago
content += '</tr></thead>';
content += '<tbody>';
ulist = rdata.data;
for (i in ulist){
6 years ago
// console.log(ulist[i]);
status = '<a href="javascript:;" onclick="ftpStart(\''+ulist[i]['id']+'\',\''+ulist[i]['name']+'\')" <span="" style="color:red">已停用<span style="color:red" class="glyphicon glyphicon-pause"></span></a>';
if (ulist[i]['status'] == '1'){
status = '<a href="javascript:;" title="FTP帐户" onclick="ftpStop(\''+ulist[i]['id']+'\',\''+ulist[i]['name']+'\')"><span style="color:#5CB85C">已启用</span><span style="color:#5CB85C" class="glyphicon glyphicon-play"></span></a>';
}
6 years ago
content += '<tr><td>'+ulist[i]['name']+'</td>'+
'<td>'+ulist[i]['password']+'</td>'+
6 years ago
'<td>'+status+'</td>' +
6 years ago
'<td>'+ulist[i]['path']+'</td>' +
'<td>'+ulist[i]['ps']+'</td>' +
6 years ago
'<td><a class="btlink" onclick="ftpModPwd(\''+ulist[i]['id']+'\',\''+ulist[i]['name']+'\',\''+ulist[i]['password']+'\')">改密</a> | ' +
6 years ago
'<a class="btlink" onclick="ftpDelete(\''+ulist[i]['id']+'\',\''+ulist[i]['name']+'\')">删除</a></td></tr>';
6 years ago
}
content += '</tbody>';
content += '</table></div>';
page = '<div class="dataTables_paginate paging_bootstrap pagination" style="margin-top:0px;"><ul id="softPage" class="page"><div>';
6 years ago
page += rdata.page;
6 years ago
page += '</div></ul></div>';
content += page;
$(".soft-man-con").html(content);
});
6 years ago
}
7 years ago
/**
*添加FTP帐户
* @param {Number} type 添加类型
*/
6 years ago
function addFtp(type) {
7 years ago
if (type == 1) {
6 years ago
var loadT = layer.load({shade: true,shadeClose: false});
7 years ago
var data = $("#ftpAdd").serialize();
6 years ago
ftpPost('add_ftp', data, function(data){
if (data.data == 'ok'){
layer.msg('添加成功!', {icon: 1});
7 years ago
} else {
6 years ago
layer.msg(rdata.data, {icon: 5});
7 years ago
}
6 years ago
ftpList();
layer.close(loadT);
7 years ago
});
return true;
}
6 years ago
var data = ftpAsyncPost('get_www_dir');
var defaultPath = data.data;
7 years ago
var index = layer.open({
type: 1,
skin: 'demo-class',
area: '500px',
6 years ago
title: '添加FTP帐户',
7 years ago
closeBtn: 2,
shift: 5,
shadeClose: false,
content: "<form class='bt-form pd20 pb70' id='ftpAdd'>\
<div class='line'>\
6 years ago
<span class='tname'>用户名</span>\
7 years ago
<div class='info-r'><input class='bt-input-text' type='text' id='ftpUser' name='ftp_username' style='width:330px' /></div>\
</div>\
<div class='line'>\
6 years ago
<span class='tname'>密码</span>\
<div class='info-r'><input class='bt-input-text mr5' type='text' name='ftp_password' id='MyPassword' style='width:330px' value='"+(randomStrPwd(16))+"' /><span title='随机密码' class='glyphicon glyphicon-repeat cursor' onclick='repeatPwd(16)'></span></div>\
7 years ago
</div>\
<div class='line'>\
6 years ago
<span class='tname'>根目录</span>\
<div class='info-r'><input id='inputPath' class='bt-input-text mr5' type='text' name='path' value='"+defaultPath+"/' placeholder='"+lan.ftp.add_path_title+"' style='width:330px' /><span class='glyphicon glyphicon-folder-open cursor' onclick='changePath(\"inputPath\")'></span><p class='c9 mt10'>"+lan.ftp.add_path_ps+"</p></div>\
7 years ago
</div>\
<div class='line' style='display:none'>\
6 years ago
<span class='tname'>备注</span>\
7 years ago
<div class='info-r'>\
6 years ago
<input id='ftp_ps' class='bt-input-text' type='text' name='ps' value='' placeholder='备注' />\
7 years ago
</div></div>\
<div class='bt-form-submit-btn'>\
6 years ago
<button type='button' class='btn btn-danger btn-sm btn-title' onclick='layer.closeAll()'>关闭</button>\
6 years ago
<button type='button' class='btn btn-success btn-sm btn-title' onclick=\"addFtp(1)\" >提交</button>\
7 years ago
</div>\
6 years ago
</form>",
7 years ago
});
6 years ago
$("#ftpUser").keyup(function(){
7 years ago
var ftpName = $(this).val();
6 years ago
$("#inputPath").val(defaultPath+'/'+ftpName);
$("#ftp_ps").val(ftpName);
7 years ago
});
}
/**
* 删除FTP帐户
* @param {Number} id
* @param {String} ftp_username 欲被删除的用户名
* @return {bool}
*/
6 years ago
function ftpDelete(id,ftp_username){
safeMessage(lan.public.del+"["+ftp_username+"]",lan.get('confirm_del',[ftp_username]),function(){
layer.msg(lan.public.the_del,{icon:16,time:0,shade: [0.3, '#000']});
var data='&id='+id+'&username='+ftp_username;
ftpPost('del_ftp', data, function(data){
layer.msg('删除成功!', {icon: 1});
ftpList();
})
});
}
7 years ago
6 years ago
function modFtpPort(type, port){
var index = layer.open({
type: 1,
skin: 'demo-class',
area: '500px',
title: '修改FTP帐户端口',
content: "<form class='bt-form pd20 pb70'>\
<div class='line'>\
<span class='tname'>默认端口</span>\
<div class='info-r'><input class='bt-input-text mr5' type='text' id='ftpPort' name='ftp_port' style='width:330px' value='"+port+"'/></div>\
</div>\
<div class='bt-form-submit-btn'>\
<button id='ftp_port_close' type='button' class='btn btn-danger btn-sm btn-title'>关闭</button>\
<button id='ftp_port_submit' type='button' class='btn btn-success btn-sm btn-title'>提交</button>\
</div>\
</form>",
});
$('#ftp_port_close').click(function(){
$('.layui-layer-close1').click();
});
$('#ftp_port_submit').click(function(){
var port = $('#ftpPort').val();
data = 'port='+port
ftpPost('mod_ftp_port', data,function(data){
ftpList();
if (data.data == 'ok'){
layer.msg('修改成功!', {icon: 1});
} else {
layer.msg(data.data, {icon: 2});
}
$('.layui-layer-close1').click();
});
});
}
7 years ago
6 years ago
function ftpModPwd(id,name,password){
var index = layer.open({
type: 1,
skin: 'demo-class',
area: '500px',
title: '修改FTP帐户密码',
content: "<form class='bt-form pd20 pb70'>\
<div class='line'>\
<span class='tname'>用户名</span>\
<div class='info-r'><input disabled class='bt-input-text mr5' type='text' id='ftpUser' name='ftp_username' style='width:330px' value='"+name+"'/></div>\
</div>\
\
<div class='line'>\
<span class='tname'>密码</span>\
<div class='info-r'><input class='bt-input-text mr5' type='text' name='ftp_password' id='MyPassword' style='width:330px' value='"+password+"' /><span title='随机密码' class='glyphicon glyphicon-repeat cursor' onclick='repeatPwd(16)'></span></div>\
</div>\
<div class='bt-form-submit-btn'>\
<button id='ftp_mod_close' type='button' class='btn btn-danger btn-sm btn-title'>关闭</button>\
<button id='ftp_mod_submit' type='button' class='btn btn-success btn-sm btn-title'>提交</button>\
</div>\
</form>",
});
7 years ago
6 years ago
$('#ftp_mod_close').click(function(){
$('.layui-layer-close1').click();
});
7 years ago
6 years ago
$('#ftp_mod_submit').click(function(){
6 years ago
pwd = $('#MyPassword').val();
data='id='+id+'&name='+name+'&password='+pwd
6 years ago
ftpPost('mod_ftp', data,function(data){
6 years ago
ftpList();
if (data.data == 'ok'){
layer.msg('修改成功!', {icon: 1});
}
$('.layui-layer-close1').click();
6 years ago
});
});
}
7 years ago
/**
* 停止FTP帐号
* @param {Number} id FTP的ID
* @param {String} username FTP用户名
*/
6 years ago
function ftpStop(id, username) {
layer.confirm('您真的要停止{1}的FTP吗?'.replace('{1}',username), {
title: 'FTP帐户',icon:3,
closeBtn:2
}, function(index) {
if (index > 0) {
var loadT = layer.load({shade: true,shadeClose: false});
var data='id=' + id + '&username=' + username + '&status=0';
6 years ago
ftpPost('stop_ftp', data, function(data){
6 years ago
layer.close(loadT);
6 years ago
if (data.data == 'ok'){
showMsg('启动成功!', function(){
ftpList();
},{icon: 1});
6 years ago
} else {
6 years ago
layer.msg(data.data, {icon: 2});
6 years ago
}
});
}
6 years ago
$('.layui-layer-close1').click();
6 years ago
});
}
7 years ago
/**
* 启动FTP帐号
* @param {Number} id FTP的ID
* @param {String} username FTP用户名
*/
6 years ago
function ftpStart(id, username) {
var loadT = layer.load({shade: true,shadeClose: false});
var data='id=' + id + '&username=' + username + '&status=1';
ftpPost('start_ftp', data, function(data){
layer.close(loadT);
if (data.data == 'ok'){
showMsg('启动成功!', function(){
ftpList();
},{icon: 1});
} else {
layer.msg(data.data, {icon: 2});
}
});
}
7 years ago