GGSheng's picture
feat: deploy Gemma 4 to hf space
3a5cf48 verified
{% extends "layout.html" %}
{% block content %}
<div class="main-content pb55">
<div class="container-fluid">
<div class="pos-box bgw mtb15">
<div class="tab-list">
<div class="tabs-item active">{{data['lan']['H2']}}</div>
</div>
</div>
<div class="safe bgw mtb15 pd15 tab-view-box">
<div class="info-title-tips">
<p><span class="glyphicon glyphicon-alert" style="color: #f39c12; margin-right: 10px;"></span>{{data['lan']['PS']}} ftp://{{session['address']}}:{{session['port']}}</p>
</div>
<div id="bt_ftp_table"></div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
{{ super() }}
<script type="text/javascript">
bt.set_cookie('sites_path',"{{session['config']['sites_path']}}");
{% if not data['isSetup'] %}
layer.msg('{{data["lan"]["JS1"]}}<a href="javascript:;" onclick="bt.soft.install(\'pureftpd\');" style="color:#20a53a; float: right;">立即安装</a>',{icon:7,time:0,shade: [0.3, '#000']});
$(".layui-layer-shade").css("margin-left", "180px");
{% else %}
var ftp_table = bt_tools.table({
el:'#bt_ftp_table',
url:'/data?action=getData',
param:{table:'ftps'},
minWidth:'1000px',
autoHeight:true,
default:"FTP列表为空",
pageName: 'ftp',
methods:{
/**
* @description 设置FTP端口
* @param {function} callback 回调函数
* @return void
*/
add_ftp_user:function(callback){
var that = this;
bt.ftp.add(function(rdata){
if(callback) callback(rdata);
if(rdata.status) that.$refresh_table_list(true);
})
},
/**
* @description 设置FTP端口
* @param {object} obj 配置对象包含port
* @param {function} callback 回调函数
* @return void
*/
del_ftp_user:function(obj,callback){
var that = this;
bt.compute_confirm({title:"删除FTP账号【"+ obj.name +"】",msg:'删除选中的FTP账号后,该FTP账号将彻底删除并失去访问权限,是否继续操作?'},function(){
bt.ftp.del(obj.id,obj.name,function(rdata){
if(callback) callback(rdata);
bt.msg(rdata);
});
});
},
/**
* @description 设置FTP密码
* @param {object} obj 配置对象包含id、name、password
* @param {function} callback 回调函数
* @return void
*/
set_ftp_password:function(obj,callback){
var that = this,bs = bt.ftp.set_password(function(rdata){
if(callback) callback(rdata);
});
$('.id'+bs).val(obj.id);
$('.ftp_username'+bs).val(obj.name);
$('.new_password'+bs).val(obj.password);
},
/**
* @description 设置FTP端口
* @param {object} obj 配置对象包含port
* @param {function} callback 回调函数
* @return void
*/
set_ftp_port:function(callback){
var bs = bt.ftp.set_port(function(rdata){
if(callback) callback(rdata);
if (rdata.status) {
setTimeout(function () {
window.location.reload()
}, 1000)
}
})
$('.port'+bs).val('{{session["port"]}}');
},
/**
* @description 设置ftp状态
* @param {object} obj 配置对象包含id、username、status
* @param {function} callback 回调函数
* @return void
*/
set_ftp_status:function(obj,callback){
if(!parseInt(obj.status)){
bt.confirm({msg:'启用选中的FTP账号后,该FTP账号恢复访问权限,是否继续操作?',title:'启用FTP账号【'+ obj.name +'】'},function(index){
bt.ftp.set_status(obj.id,obj.name,"1",function(rdata){
if(callback) callback(rdata);
});
});
}else{
bt.confirm({msg:'停用选中的FTP账号后,该FTP账号将失去访问权限,是否继续操作?',title:'停用FTP账号【'+ obj.name +'】'},function(index){
bt.ftp.set_status(obj.id,obj.name,"0",function(rdata){
if(callback) callback(rdata);
});
});
}
}
},
column:[
{type:'checkbox',width:20},
{fid:'name',title:'用户名',type:'text'},
{fid:'password',title:'密码',type:'password',copy:true,eye_open:true},
{fid:'status',title:'状态',sort:true,width:100,config:{
icon:true,list:[['1','已启用','bt_success','glyphicon-play'],['0','已停用','bt_danger','glyphicon-pause']]},type:'status',event:function(row,index,ev,key,that){
that.set_ftp_status({id:row.id,status:row.status,name:row.name},function(res){
if(res.status) that.$modify_row_data({status:parseInt(row.status)?'0':'1'});
});
}},
{fid:'path',title:'根目录',type:'link',align:'left',
event:function(row,index,ev){
openPath(row.path)
}},
{
// <span '+(bt.get_cookie('ltd_end')>0?' style="cursor:text" ':'onclick="bt.soft.product_pay_view({ totalNum: 51, limit: \'ltd\', closePro: true })"')+' class="firwall_place_of_attribution"></span>
title: '目录详情',
width:120,
type: 'text',
template:function(row,index,ev){
return bt.files.dir_details_span(row.path);
},
},
bt.public.get_quota_config('ftp'),
{fid:'ps',title:'备注',type:'input',blur:function(row,index,ev){
bt.pub.set_data_ps({id:row.id,table:'ftps',ps:ev.target.value},function(res){
bt_tools.msg(res);
});
},keyup:function(row,index,ev){
if(ev.keyCode === 13){
$(this).blur();
}
}},
{title:'操作',type:'group',width:170,align:'right',group:[{
title:'改密',event:function(row,index,ev,key,that){
that.set_ftp_password({id:row.id,name:row.name,password:row.password},function(rdata){
if(rdata.status) that.$refresh_table_list(true);
});
}
}, {
title: '日志', event: function (row, index, ev, key, that) {
var ltd = parseInt(bt.get_cookie('ltd_end') || -1)
if(ltd > 0) {//为企业版
bt.send('ftp', 'ftp/set_ftp_logs', {exec_name: 'getlog'}, function (res) {
var _status = res.msg === 'start' ? true : false
if(!_status){
bt.confirm({title:'提示',msg:'当前未开启FTP日志管理,是否开启?',icon:0},function(index){
layer.close(index);
bt.send('ftp', 'ftp/set_ftp_logs', {exec_name: 'start'}, function (res) {
bt_tools.msg(res)
if(res.status){
$("#bt_ftp_table #isFtplog").prop("checked", true);
setTimeout(function(){
open_ftp_log()
},1000)
}
})
})
return
}else{
open_ftp_log()
}
function open_ftp_log() {
var web_tab = bt_tools.tab({
class: 'pd20',
type: 0,
theme: { nav: 'ml0' },
active: 1, //激活TAB下标
list:[
{
title: '登录日志',
content: '<div id="bt_ftp_Login_logs"></div>',
success: function () {
$('#bt_ftp_Login_logs').parent().parent().css('padding','10px 0')
$('#bt_ftp_Login_logs').empty()
bt_tools.table({
el: '#bt_ftp_Login_logs',
default: '暂无日志信息',
height: 390,
url: '/ftp?action=get_login_logs',
param: {
user_name: row.name
},
column: [
{ title: '用户名', type: 'text', width: 100,template:function() {
return '<span>' + row.name + '</span>';
}},
{ fid: 'ip', title: '登录IP', type: 'text', width: 110},
{ fid: 'status', title: '状态', type: 'text', width: 75,
template: function (rowc, index, ev) {
var status = rowc.status.indexOf('登录成功') > -1
return '<span class="' + (status ? 'btlink' : 'bterror' ) + '">' + (status ? '登录成功' : '登录失败' ) + '<span>';
}},
{ fid: 'in_time', title: '登录时间', type: 'text', width: 150 },
{ fid: 'out_time', title: '登出时间', type: 'text', width: 200},
],
tootls: [
{
type:'group',
positon:['left','top'],
list:[
{title:'刷新日志',active:true,event:function(ev,ethat){
$('#bt_ftp_Login_logs .search_input').val('')
ethat.config.search.value = ''
ethat.$refresh_table_list(true)
}},
]
},
{
type: 'search',
positon: ['right', 'top'],
placeholder: '请输入登录IP/状态/时间',
searchParam: 'search', //搜索请求字段,默认为 search
value: '',// 当前内容,默认为空
},
{
type: 'page',
positon: ['right', 'bottom'], // 默认在右下角
pageParam: 'p', //分页请求字段,默认为 : p
page: 1, //当前分页 默认:1
}
]
})
}
}, {
title: '操作日志',
content: '<div id="bt_ftp_logsOperation"></div><ul class="help-info-text c7"><li>部分ftp客户端上传带中文名称的文件时,写入的ftp日志中文部分为乱码,这将导致显示的文件名称中文部分无法转换</li></ul>',
success: function () {
var typeList = [
{ title: '全部', value: 'all' },
{ title: '上传', value: 'upload' },
{ title: '下载', value: 'download' },
{ title: '删除', value: 'delete' },
{ title: '重命名', value: 'rename' }]
table_logsOperation('all')
function table_logsOperation(type) {
$('#bt_ftp_logsOperation').empty()
bt_tools.table({
el: '#bt_ftp_logsOperation',
default: '暂无日志信息',
height: 350,
url: '/ftp?action=get_action_logs',
param: {
user_name: row.name,
type: type
},
column: [
{ title: '用户名', type: 'text', width: 100,template:function() {
return '<span>' + row.name + '</span>';
}},
{ fid: 'ip', title: '操作IP', type: 'text', width: 110},
{ fid: 'file', title: '文件', type: 'text', width: 240,fixed: true },
{ fid: 'type', title: '操作类型', type: 'text', width: 75},
{ fid: 'time', title: '操作时间', type: 'text', width: 100 },
],
tootls: [{
type:'group',
positon:['left','top'],
list:[
{title:'刷新日志',active:true,event:function(){
table_logsOperation(type)
}},
]
},
{
type: 'search',
positon: ['right', 'top'],
placeholder: '请输入操作IP/文件/类型/时间',
searchParam: 'search', //搜索请求字段,默认为 search
value: '',// 当前内容,默认为空
},
{
type: 'page',
positon: ['right', 'bottom'], // 默认在右下角
pageParam: 'p', //分页请求字段,默认为 : p
page: 1, //当前分页 默认:1
}
],
success: function () {
if(!$('#bt_ftp_logsOperation .log_type').length){
var _html = ''
$.each(typeList, function (index, item) {
_html += '<option value="' + item.value + '">' + item.title + '</option>'
})
$('#bt_ftp_logsOperation .bt_search').before('<select class="bt-input-text mr5 log_type" style="width:110px" name="log_type">'+ _html +'</select>')
$('#bt_ftp_logsOperation .log_type').val(type)
$('#bt_ftp_logsOperation .log_type').change(function () {
table_logsOperation($(this).val())
})
}
}
})
}
}
}]
})
bt_tools.open({
area: ['700px', '605px'],
title: '【' + row.name + '】- 日志',
closeBtn: 2,
btn: false,
skin: 'bt_ftp_logsLogin',
content: web_tab.$reader_content(),
success: function () {
web_tab.$init();
}
})
}
})
}else{
var item = {
pluginName: 'FTP日志',
description:['记录和查看当前FTP日志','登录日志','操作日志'],
ps: 'FTP日志是FTP服务器记录的各种FTP操作、事件以及异常情况等信息的记录,如登录日志、上传下载日志、错误日志等。',
preview: false,
limit: 'ltd',
imgSrc:'https://www.bt.cn/Public/new/plugin/introduce/ftp/ftplog.png'
}
product_recommend.recommend_product_view(item, {
imgArea: ['783px', '718px']
},'ltd',57,'ltd')
}
}
},{
title:'删除',event:function(row,index,ev,key,that){
that.del_ftp_user({id:row.id,name:row.name},function(res){
if(res.status) that.$refresh_table_list(true);
});
}
}]}
],
sortParam: function (data) {
return { 'order': data.name + ' ' + data.sort };
},
tootls:[{
type:'group',
positon:['left','top'],
list:[
{title:'添加FTP',active:true,event:function(ev,that){
that.add_ftp_user();
}},
{title:'修改FTP端口',event:function(ev,that){
that.set_ftp_port();
}}
]
},{ // 批量操作
type:'batch',
positon:['left','bottom'],
config:{
title:"删除",
url:'/ftp?action=DeleteUser',
load:true,
param:function(row){
return {id:row.id,username:row.name};
},
callback:function(that){
bt.confirm({title:'批量删除FTP',msg:'是否批量删除选中的FTP用户,是否继续?',icon:0},function(index){
layer.close(index);
that.start_batch({},function(list){
var html = '';
for(var i=0;i<list.length;i++){
var item = list[i];
html += '<tr><td>'+ item.name +'</td><td><div style="float:right;"><span style="color:'+ (item.request.status?'#20a53a':'red') +'">'+ item.request.msg +'</span></div></td></tr>';
}
ftp_table.$batch_success_table({title:'批量删除FTP',th:'FTP用户名',html:html});
ftp_table.$refresh_table_list(true);
});
});
}
}
},{
type:'search',
positon:['right','top'],
placeholder:'请输入FTP用户名',
searchParam:'search', //搜索请求字段,默认为 search
value:'',// 当前内容,默认为空
},{ //分页显示
type:'page',
positon:['right','bottom'], // 默认在右下角
pageParam:'p', //分页请求字段,默认为 : p
page:1, //当前分页 默认:1
numberParam:'limit', //分页数量请求字段默认为 : limit
number:20, //分页数量默认 : 20条
numberList:[10,20,50,100,200], // 分页显示数量列表
numberStatus:true, // 是否支持分页数量选择,默认禁用
jump:true, //是否支持跳转分页,默认禁用
}],
success: function (obj) {
// 详情事件
bt.files.dir_details()
}
});
{% endif %}
</script>
{% endblock %}