var soft = { is_install: false, trail:0,//是否试用 is_setup:false, is_setup_name:"", refresh_data:[], get_list: function(page, type, search) { if (page == undefined || page == 'null' || page == 'undefined') page = 0; if (type == undefined || type == 'null' || type == 'undefined') type = 0; if (!search) search = $("#SearchValue").val(); if (search == undefined || search == 'null' || search == 'undefined' || search == '') search = undefined; var _this = this, commonly_software = $('#commonly_software'); var istype = getCookie('softType'); if(istype == 'undefined' || istype == 'null' || !istype){ istype = 0; } if (type == 0) type = bt.get_cookie('softType'); if (page == 0) page = bt.get_cookie('p' + type); if (type == '11'){ soft.get_dep_list(1); commonly_software.hide(); return; } soft.is_install = false; bt.soft.get_soft_list(page, type, search, function(rdata) { _this.trail = rdata.trail // if (rdata.pro < 0) { // // $("#updata_pro_info").html(''); // } else // if (rdata.pro === -2) { // $("#updata_pro_info").html('
' + item.title + ' ' + version + '';
}
},
{
field: 'price',
title: 'Developer',
width: 110,
templet: function(item) {
if (!item.author) return 'official'
return item.author;
}
},
{
field: 'ps',
title: lan.soft.instructions,
templet: function(item) {
var ps = item.ps;
var is_php = item.name.indexOf('php-') >= 0;
if (is_php && item.setup) {
if (rdata.apache22 && $.inArray(item.name, phps) >= 0) {
if (item.fpm) {
ps += " (" + lan.soft.apache22 + ")";
}
} else if (!rdata.apache22) {
if (!item.fpm) {
ps += " (" + lan.soft.apache24 + ")";
}
}
}
return '' + ps + '';
}
},
{
field: 'price',
title: lan.soft.price,
width: 92,
templet: function(item) {
var price = lan.soft.free;
if (item.price > 0) {
price = '$' + item.price + '';
}
return price;
}
},
(type == 10 ? {
field: 'sort',
width: 80,
title: 'Rated',
templet: function(item) {
return item.sort !== undefined ? ('' + (item.sort <= 0 || item.sort > 5 ? lan.soft.not_rated : item.sort.toFixed(1)) + '') : '--';
}
} : ''),
{
field: 'endtime',
width: 120,
title: lan.soft.expire_time,
templet: function(item) {
var endtime = '--';
if (item.pid > 0) {
if (item.endtime > 0) {
if (item.type != 10) {
endtime = bt.format_data(item.endtime, 'yyyy/MM/dd') ;
} else {
endtime = bt.format_data(item.endtime, 'yyyy/MM/dd') ;
}
} else if (item.endtime === 0) {
endtime = lan.soft.permanent;
} else if (item.endtime === -1) {
endtime = lan.soft.not_open;
} else if (item.endtime === -2) {
if (item.type != 10) {
endtime = lan.soft.already_expire ;
} else {
endtime = lan.soft.already_expire ;
}
}
}
return endtime;
}
},
{
field: 'path',
width: 40,
title: lan.soft.location,
templet: function(item) {
var path = '';
if (item.setup) {
path = '';
}
return path;
}
},
(type != 10 ? {
field: 'status',
width: 40,
title: lan.soft.status1,
templet: function(item) {
var status = '';
if (item.setup) {
if (item.status) {
status = '';
} else {
status = '';
}
}
return status;
}
} : ''),
{
field: 'index',
width: 100,
title: lan.soft.display_at_homepage,
templet: function(item) {
var to_index = '';
if (item.setup) {
var checked = '';
if (item.index_display) checked = 'checked';
var item_id = item.name.replace(/\./, "");
to_index = '';
}
return to_index;
}
},
{
field: 'opt',
width: 190,
title: lan.soft.operate,
align: 'right',
templet: function(item) {
var option = '';
var pay_opt = '';
if (item.endtime < 0 && item.pid > 0) {
var re_msg = '';
var re_status = 0;
var buy_type = 0;
switch (item.endtime) {
case -1:
re_msg = lan.soft.buy_now;
buy_type = 31;
break;
case -2:
re_msg = lan.soft.renew_now;
re_status = 1;
buy_type = 32;
break;
}
if (item.type != 10) {
pay_opt = '' + re_msg + '';
} else {
pay_opt = '' + re_msg + '';
}
}
var is_php = item.name.indexOf('php-') >= 0,
is_php5 = item.name.indexOf('php-5') >= 0,
webcache = bt.get_cookie('serverType') == 'openlitespeed' ? true : false,
distribution = bt.get_cookie('distribution');
if (webcache && is_php) {
if ((is_php5 || item.name == 'php-7.0') && distribution=='centos8') {
option = '' + lan.soft.not_comp + '';
}else if (distribution=='centos7'&&item.name == 'php-5.2') {
option = '' + lan.soft.not_comp + '';
}else{
if (distribution!='centos7'&&is_php5) {
option = '' + lan.soft.not_comp + '';
} else {
if (item.setup && item.task == '1') {
if (pay_opt == '') {
if (item.versions.length > 1) {
for (var i = 0; i < item.versions.length; i++) {
var min_version = item.versions[i]
var ret = bt.check_version(item.version, min_version.m_version + '.' + min_version.version);
if (ret > 0) {
if (ret == 2) option += '' + lan.soft.update + ' | ';
break;
}
}
} else {
var min_version = item.versions[0];
var cloud_version = min_version.m_version + '.' + min_version.version;
if (item.version != cloud_version) option += '' + lan.soft.update + ' | ';
}
if (item.admin) {
option += '' + lan.soft.setup + ' | ';
} else {
option += '' + lan.soft.setup + ' | ';
}
} else {
option = pay_opt + ' | ' + option;
}
option += '' + lan.soft.uninstall + '';
} else if (item.task == '-1') {
option = '' + lan.soft.installing + '';
soft.is_install = true;
} else if (item.task == '0') {
option = '' + lan.soft.wait_install + '';
soft.is_install = true;
} else if (item.task == '-2') {
option = 'Updating';
soft.is_install = true;
} else {
if (pay_opt) {
option = pay_opt;
} else {
option = '' + lan.soft.install + '';
}
}
}
}
}else {
if (rdata.apache22 && is_php && $.inArray(item.name, phps) == -1) {
if (item.setup) {
option = '' + lan.soft.uninstall + '';
} else {
option = '' + lan.soft.not_comp + '';
}
} else if (rdata.apache24 && item.name == 'php-5.2') {
if (item.setup) {
option = '' + lan.soft.uninstall + '';
} else {
option = '' + lan.soft.not_comp + '';
}
} else {
if (item.setup && item.task == '1') {
if (pay_opt == '') {
if (item.versions.length > 1) {
for (var i = 0; i < item.versions.length; i++) {
var min_version = item.versions[i]
var ret = bt.check_version(item.version, min_version.m_version + '.' + min_version.version);
if (ret > 0) {
if (ret == 2) option += '' + lan.soft.update + ' | ';
break;
}
}
} else {
var min_version = item.versions[0];
var cloud_version = min_version.m_version + '.' + min_version.version;
if (item.version != cloud_version) option += '' + lan.soft.update + ' | ';
}
if (item.admin) {
option += '' + lan.soft.setup + ' | ';
} else {
option += '' + lan.soft.setup + ' | ';
}
} else {
option = pay_opt + ' | ' + option;
}
option += '' + lan.soft.uninstall + '';
} else if (item.task == '-1') {
option = '' + lan.soft.installing + '';
soft.is_install = true;
} else if (item.task == '0') {
option = '' + lan.soft.wait_install + '';
soft.is_install = true;
} else if (item.task == '-2') {
option = 'Updating';
soft.is_install = true;
} else {
if (pay_opt) {
option = pay_opt;
} else {
option = '' + lan.soft.install + '';
}
}
}
}
return option;
}
}
],
data: data,
empty:'If the search content is not found, submit the demand feedback'
})
// 需求反馈
if(data.length == 0){
$('.feedback-btn').remove();
$('.soft-filter-box .soft-search').after('Feedback');
}
},
// 渲染列表
render_promote_list:function(data){
if($('#soft_recom_list').length > 0) $('#soft_recom_list').remove();
var html = $('+'/ico-'+ item.name +'.png)
' + item.title + '
', {
icon: 16,
time: 0,
shade: [0.3, '#000']
});
var pdata = {}
var search = $("#SearchValue").val();
if (search != '') {
pdata['search'] = search
}
var type = '';
var istype = getCookie('depType');
if (istype == 'undefined' || istype == 'null' || !istype) {
istype = '0';
}
pdata['type'] = istype;
var force = bt.get_cookie('force');
if (force === '1') {
pdata['force'] = force;
}
bt.set_cookie('force', 0);
$.post('/deployment?action=GetList', pdata, function(rdata) {
layer.close(loadT)
var tBody = '';
soft.set_soft_tips(rdata, 11);
rdata.type.unshift({
icon: 'icon',
id: 0,
ps: 'All',
sort: 1,
title: 'All'
}, {
icon: 'icon',
id: -1,
ps: 'Installed',
sort: 1,
title: 'Installed'
});
for (var i = 0; i < rdata.type.length; i++) {
var c = '';
if ('11' == rdata.type[i].id) {
c = 'class="on"';
}
tBody += '' + rdata.type[i].title + '';
}
$(".softtype").html(tBody);
$(".menu-sub span").click(function() {
var _type = $(this).attr('typeid');
bt.set_cookie('softType', _type);
$(this).addClass("on").siblings().removeClass("on");
if (_type !== '11') {
soft.get_list(0, _type);
} else {
soft.get_dep_list(1);
}
});
if ($(".onekey-type").attr("class") === undefined) {
tbody = '' + lan.soft.status + ':' + (data.status ? lan.soft.running : lan.soft.stop) + '
\ \Public access address: ' + data.ext.url + '
\ '); tabCon.append('' + lan.bt.edit_ps + '
'); tabCon.append('') tabCon.append('') tabCon.append(bt.render_help([lan.get('config_edit_ps', [version])])) var fileName = bt.soft.get_config_path(version); if (data.php_ini) fileName = data.php_ini; var loadT = bt.load(lan.soft.get); bt.send('GetFileBody', 'files/GetFileBody', { path: fileName }, function(rdata) { loadT.close(); $("#textBody").text(rdata.data); $(".CodeMirror").remove(); var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), { extraKeys: { "Ctrl-Space": "autocomplete" }, lineNumbers: true, matchBrackets: true, }); editor.focus(); $(".CodeMirror-scroll").css({ "height": "510px", "margin": 0, "padding": 0 }); $("#OnlineEditFileBtn").click(function() { $("#textBody").text(editor.getValue()); bt.soft.save_config(fileName, editor.getValue()) }); }) break; case 'fpm_config': var tabCon = $(".soft-man-con").empty(); tabCon.append('' + lan.bt.edit_ps + '
'); tabCon.append('') tabCon.append('') var _arry = ['If you do not understand the php-fpm configuration file, please do not modify it!']; tabCon.append(bt.render_help(_arry)) $('.return_php_info').click(function(){ $('.bt-soft-menu p:eq(12)').click(); }); var fileName = bt.soft.get_config_path(version).replace('php.ini','php-fpm.conf'); var loadT = bt.load(lan.soft.get); var config = bt.aceEditor({el:'textBody',path:fileName}); $("#OnlineEditFileBtn").click(function () { bt.saveEditor(config); }); break; case 'change_version': var _list = []; var opt_version = ''; for (var i = 0; i < data.versions.length; i++) { if (data.versions[i].setup) opt_version = data.name + ' ' + data.versions[i].m_version; _list.push({ value: data.name + ' ' + data.versions[i].m_version, title: data.name + ' ' + data.versions[i].m_version }); } var _form_data = { title: lan.soft.select_version, items: [{ name: 'phpVersion', width: '160px', type: 'select', value: opt_version, items: _list }, { name: 'btn_change_version', type: 'button', text: lan.soft.version_to, callback: function(ldata) { if (ldata.phpVersion == opt_version) { bt.msg({ msg: 'Is already[' + opt_version + ']', icon: 2 }) return; } if (data.name == 'mysql') { var ver = ldata.phpVersion.split("mysql "), pdata = {sName: 'mysql', version: ver[1], type: 0}; $.post('/plugin?action=check_install_limit', pdata ,function(rdata) { if(rdata !==null && rdata.status == false) { bt.msg({msg: rdata.msg,icon: 2,time: 3000}); return false } bt.database.get_list(1, '', function(ddata) { if (ddata.data.length > 0) { bt.msg({ msg: lan.soft.mysql_d, icon: 5, time: 5000 }) return; } bt.soft.install_soft(data, ldata.phpVersion.split(" ")[1], 0); }) }); } else { bt.soft.install_soft(data, ldata.phpVersion.split(" ")[1], 0); } } } ] } bt.render_form_line(_form_data, '', $(".soft-man-con").empty()) break; case 'change_data_path': bt.send('GetMySQLInfo', 'database/GetMySQLInfo', {}, function(rdata) { var form_data = { items: [{ type: 'text', name: 'datadir', value: rdata.datadir, event: { css: 'glyphicon-folder-open', callback: function(obj) { bt.select_path(obj); } } }, { name: 'btn_change_path', type: 'button', text: lan.soft.mysql_to, callback: function(ldata) { var loadT = bt.load(lan.soft.mysql_to_msg1); bt.send('SetDataDir', 'database/SetDataDir', { datadir: ldata.datadir }, function(rdata) { loadT.close(); bt.msg(rdata); }); } } ] } bt.render_form_line(form_data, '', $(".soft-man-con").empty()); }); break; case 'change_mysql_port': bt.send('GetMySQLInfo', 'database/GetMySQLInfo', {}, function(rdata) { var form_data = { items: [{ type: 'text', width: '100px', name: 'port', value: rdata.port }, { name: 'btn_change_port', type: 'button', text: lan.public.edit, callback: function(ldata) { var loadT = bt.load(); bt.send('SetMySQLPort', 'database/SetMySQLPort', { port: ldata.port }, function(rdata) { loadT.close(); bt.msg(rdata); }); } } ] } bt.render_form_line(form_data, '', $(".soft-man-con").empty()); }); break; case 'change_mysql_ssl': bt.send('check_mysql_ssl_status', 'database/check_mysql_ssl_status', {}, function(rdata) { var form_data = { title: 'Mysql SSL', items: [{ type: 'switch', name: 'write_ssl', value: rdata } ] }; bt.render_form_line(form_data, '', $(".soft-man-con").empty()); var downssl = "/www/server/data/ssl.zip"; $(".soft-man-con").append(bt.render_help(["After setting, manually restart the database to take effect","Download Mysql SSL self-signed certificate【SSL.zip】"])); $("a.downssl").click(function() { window.open('/download?filename=' + encodeURIComponent(downssl)); }); $("#write_ssl").change(function() { var loadT = bt.load(); $.post('/database?action=write_ssl_to_mysql', function(rdata) { loadT.close(loadT); var open_type = $("#write_ssl").prop('checked')?'turned on':'turned off', loadP = layer.confirm('The SSL setting is '+open_type+' successfully.| ' + lan.soft.mysql_status_title1 + ' | ' + getLocalTime(rdata.Run) + ' | ' + lan.soft.mysql_status_title5 + ' | ' + parseInt(rdata.Questions / rdata.Uptime) + ' |
|---|---|---|---|
| ' + lan.soft.mysql_status_title2 + ' | ' + rdata.Connections + ' | ' + lan.soft.mysql_status_title6 + ' | ' + parseInt((parseInt(rdata.Com_commit) + parseInt(rdata.Com_rollback)) / rdata.Uptime) + ' |
| ' + lan.soft.mysql_status_title3 + ' | ' + ToSize(rdata.Bytes_sent) + ' | ' + lan.soft.mysql_status_title7 + ' | ' + rdata.File + ' |
| ' + lan.soft.mysql_status_title4 + ' | ' + ToSize(rdata.Bytes_received) + ' | ' + lan.soft.mysql_status_title8 + ' | ' + rdata.Position + ' |
| \ \ | ||
|---|---|---|
| ' + lan.soft.mysql_status_title9 + ' | ' + rdata.Threads_running + '/' + rdata.Max_used_connections + ' | ' + lan.soft.mysql_status_ps1 + ' |
| ' + lan.soft.mysql_status_title10 + ' | ' + (!isNaN(title10) ? title10 : '0') + '% | ' + lan.soft.mysql_status_ps2 + ' |
| ' + lan.soft.mysql_status_title11 + ' | ' + (!isNaN(title11) ? title11 : '0') + '% | ' + lan.soft.mysql_status_ps3 + ' |
| ' + lan.soft.mysql_status_title12 + ' | ' + (!isNaN(title12) ? title12 : '0') + '% | ' + lan.soft.mysql_status_ps4 + ' |
| ' + lan.soft.mysql_status_title13 + ' | ' + cache_size + ' | ' + lan.soft.mysql_status_ps5 + ' |
| ' + lan.soft.mysql_status_title14 + ' | ' + (!isNaN(title14) ? title14 : '0') + '% | ' + lan.soft.mysql_status_ps6 + ' |
| ' + lan.soft.mysql_status_title15 + ' | ' + rdata.Open_tables + ' | ' + lan.soft.mysql_status_ps7 + ' |
| ' + lan.soft.mysql_status_title16 + ' | ' + rdata.Select_full_join + ' | ' + lan.soft.mysql_status_ps8 + ' |
| ' + lan.soft.mysql_status_title17 + ' | ' + rdata.Select_range_check + ' | ' + lan.soft.mysql_status_ps9 + ' |
| ' + lan.soft.mysql_status_title18 + ' | ' + rdata.Sort_merge_passes + ' | ' + lan.soft.mysql_status_ps10 + ' |
| ' + lan.soft.mysql_status_title19 + ' | ' + rdata.Table_locks_waited + ' | ' + lan.soft.mysql_status_ps11 + ' |
\ ' + lan.soft.mysql_log_bin + ' ' + ToSize(rdata.msg) + '\ \
' + lan.soft.mysql_log_err + '
\ \ ' $(".soft-man-con").html(limitCon); //设置二进制日志 $(".btn-bin").click(function() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=BinLog', "", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); soft.get_tab_contents('mysql_log') }); }) //清空日志 $(".btn-clear").click(function() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=GetErrorLog', "close=1", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); soft.get_tab_contents('mysql_log') }); }) bt.send('GetErrorLog', 'database/GetErrorLog', {}, function(error_body) { if (error_body.status === false) { layer.msg(error_body.msg, { icon: 5 }); error_body = lan.soft.mysql_log_ps1; } if (error_body == "") error_body = lan.soft.mysql_log_ps1; $("#error_log").text(error_body); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); }) break; case 'mysql_slow_log': var loadT = bt.load(); bt.send('GetSlowLogs', 'database/GetSlowLogs', {}, function(logs) { loadT.close(); if (!logs.status) { logs.msg = ''; } if (logs.msg == '') logs.msg = lan.soft.no_slow_log; var phpCon = ''; $(".soft-man-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }) break; case 'log': var loadT = bt.load(lan.public.the_get); bt.send('GetOpeLogs', 'ajax/GetOpeLogs', { path: '/www/wwwlogs/nginx_error.log' }, function(rdata) { loadT.close(); if (rdata.msg == '') rdata.msg = lan.soft.no_log; var ebody = ''; $(".soft-man-con").html(ebody); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }) break; case 'nginx_status': var loadT = bt.load(); bt.send('GetNginxStatus', 'ajax/GetNginxStatus', {}, function(rdata) { loadT.close(); $(".soft-man-con").html("| Name | Format | Opt |
|---|
| Name | Format | Opt |
|---|
| " + lan.soft.field + " | " + lan.soft.curr_val + " | " + lan.soft.instructions + " |
|---|
' + lan.soft.pma_user + '
\' + lan.soft.pma_pass1 + '
\' + lan.soft.pma_pass2 + '
\ \| ' + lan.soft.version + ' | ' + php_info.phpinfo.php_version + ' | ' + lan.soft.install_path + ' | ' + php_info.phpinfo.php_path + ' |
| php.ini | ' + php_info.phpinfo.php_ini + ' | ||
| ' + lan.soft.loaded + ' | ' + php_info.phpinfo.modules + ' | ||
' + php_info.phpinfo.keys[k] + '
' con += '| ' + key + ' | ' + p_status[php_info[k][key]] + ' | ' nkey++; if (nkey >= 3) { nkey = 0; con += '
' + rdata[i].name + '' + ibody + ', ' + rdata[i].ps + '
' } var tabCon = $(".soft-man-con").empty() tabCon.append('| " + lan.soft.field + " | " + lan.soft.curr_val + " | " + lan.soft.instructions + " |
|---|
' + lan.soft.name + ':' + data.title + '
\' + lan.soft.version + ':' + data.versions + '
\' + lan.soft.ps + ':' + data.ps + '
\' + lan.soft.size + ':' + bt.format_size(data.size, true) + '
\' + lan.soft.author + ':' + data.author + '
\' + lan.soft.source + ':' + data.home + '
\
', {
icon: 16,
time: 0,
shade: [0.3, '#000']
});
$.post('/deployment?action=AddPackage', pdata, function(rdata) {
layer.close(loadT);
layer.msg(rdata.msg, {
icon: rdata.status ? 1 : 5
});
if (rdata.status) {
GetSrcList();
layer.close(openId);
}
});
return;
}
openId = layer.open({
type: 1,
skin: 'demo-class',
area: '480px',
title: '添加源码包',
closeBtn: 2,
shift: 5,
shadeClose: false,
content: 'Title:
', {
icon: 16,
time: 0,
shade: [0.3, "#000"]
})
var data = $("#addweb").serialize() + "&port=" + Webport + "&webname=" + domain + '&ftp=false&sql=true&address=localhost&codeing=utf8&version=' + php_version;
$.post('/site?action=AddSite', data, function(ret) {
layer.close(loadT)
if (!ret.siteStatus) {
layer.msg(ret.msg, {
icon: 5
});
return;
}
layer.close(add)
var sqlData = '';
if (ret.databaseStatus) {
sqlData = "Database account information
\Database name:" + ret.databaseUser + "
\User:" + ret.databaseUser + "
\Password:" + ret.databasePass + "
\ " } var pdata = 'dname=' + codename + '&site_name=' + mainDomain + '&php_version=' + php_version; var loadT = layer.msg('
Successfully deployed, no need to install, please login to modify the default account password.
\User:" + rdata.msg.admin_username + "
\Password:" + rdata.msg.admin_password + "
\ " } sqlData += "Visit site:http://" + mainDomain + rdata.msg.success_url + "
"; layer.open({ type: 1, area: '600px', title: 'Successfully deployed [' + title + ']', closeBtn: 2, shadeClose: false, content: "
正在' + speed.name + ' 
' + ToSize(speed.used) + '/' + ToSize(speed.total) + '' + ToSize(speed.speed) + '/s
'; $('.depSpeed').prev().hide(); $('.depSpeed').css({ "margin-left": "-37px", "width": "380px" }); $('.depSpeed').parents(".layui-layer").css({ "margin-left": "-100px" }); } else { speed = '' + speed.name + '
'; $('.depSpeed').prev().show(); $('.depSpeed').removeAttr("style"); $('.depSpeed').parents(".layui-layer").css({ "margin-left": "0" }); } $('.depSpeed').html(speed); setTimeout(function() { GetSpeed(); }, 1000); }); } function onekeyCodeSite(codename, versions, title, enable_functions) { $.post('/site?action=GetPHPVersion', function(rdata) { var php_version = ""; var n = 0; for (var i = rdata.length - 1; i >= 0; i--) { if (versions.indexOf(rdata[i].version) != -1) { php_version += ""; n++; } } if (n == 0) { layer.msg('Missing supported PHP version, please install!', { icon: 5 }); return; } var default_path = bt.get_cookie('sites_path'); if (!default_path) default_path = '/www/wwwroot'; var con = '