mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-18 23:45:52 +08:00
增加网站分类功能
This commit is contained in:
+15
-11
@@ -51,9 +51,15 @@ class site_api:
|
||||
def listApi(self):
|
||||
limit = request.form.get('limit', '').encode('utf-8')
|
||||
p = request.form.get('p', '').encode('utf-8')
|
||||
type_id = request.form.get('type_id', '').encode('utf-8')
|
||||
|
||||
start = (int(p) - 1) * (int(limit))
|
||||
_list = public.M('sites').where('', ()).field('id,name,path,status,ps,addtime,edate').limit(
|
||||
|
||||
siteM = public.M('sites')
|
||||
if type_id != '' and type_id == '-1' and type_id == '0':
|
||||
siteM.where('type_id=?', (type_id))
|
||||
|
||||
_list = siteM.field('id,name,path,status,ps,addtime,edate').limit(
|
||||
(str(start)) + ',' + limit).order('id desc').select()
|
||||
|
||||
for i in range(len(_list)):
|
||||
@@ -63,7 +69,7 @@ class site_api:
|
||||
_ret = {}
|
||||
_ret['data'] = _list
|
||||
|
||||
count = public.M('sites').where('', ()).count()
|
||||
count = siteM.count()
|
||||
_page = {}
|
||||
_page['count'] = count
|
||||
_page['tojs'] = 'getWeb'
|
||||
@@ -1215,7 +1221,7 @@ class site_api:
|
||||
mid = request.form.get('id', '').encode('utf-8')
|
||||
site_ids = json.loads(site_ids)
|
||||
for sid in site_ids:
|
||||
public.M('sites').where('id=?', (sid,)).setField('type_id', mid)
|
||||
print public.M('sites').where('id=?', (sid,)).setField('type_id', mid)
|
||||
return public.returnJson(True, "设置成功!")
|
||||
|
||||
##### ----- end ----- ###
|
||||
@@ -1625,13 +1631,12 @@ location /{
|
||||
self.sitePort = port.strip().replace(' ', '')
|
||||
self.phpVersion = version
|
||||
|
||||
siteM = public.M('sites')
|
||||
if siteM.where("name=?", (self.siteName,)).count():
|
||||
if public.M('sites').where("name=?", (self.siteName,)).count():
|
||||
return public.returnJson(False, '您添加的站点已存在!')
|
||||
|
||||
# 写入数据库
|
||||
pid = siteM.add('name,path,status,ps,edate,addtime',
|
||||
(self.siteName, self.sitePath, '1', ps, '0000-00-00', public.getDate()))
|
||||
pid = public.M('sites').add('name,path,status,ps,edate,addtime,type_id',
|
||||
(self.siteName, self.sitePath, '1', ps, '0000-00-00', public.getDate(), 0,))
|
||||
opid = public.M('domain').where(
|
||||
"name=?", (self.siteName,)).getField('pid')
|
||||
if opid:
|
||||
@@ -1643,14 +1648,13 @@ location /{
|
||||
for domain in siteMenu['domainlist']:
|
||||
sdomain = domain
|
||||
swebname = self.siteName
|
||||
spid = str(get.pid)
|
||||
spid = str(pid)
|
||||
# self.addDomain(domain, webname, pid)
|
||||
|
||||
public.M('domain').add('pid,name,port,addtime',
|
||||
(pid, self.siteName, self.sitePort, public.getDate()))
|
||||
|
||||
self.createRootDir(self.sitePath)
|
||||
|
||||
self.nginxAddConf()
|
||||
|
||||
data = {}
|
||||
@@ -1661,8 +1665,8 @@ location /{
|
||||
def deleteWSLogs(self, webname):
|
||||
assLogPath = public.getLogsDir() + '/' + webname + '.log'
|
||||
errLogPath = public.getLogsDir() + '/' + webname + '.error.log'
|
||||
confFile = self.setupPath + '/openresty/nginx/conf/vhost/' + webname + '.conf'
|
||||
rewriteFile = self.setupPath + '/openresty/nginx/conf/rewrite/' + webname + '.conf'
|
||||
confFile = self.setupPath + '/web_conf/nginx/conf/vhost/' + webname + '.conf'
|
||||
rewriteFile = self.setupPath + '/web_conf/nginx/conf/rewrite/' + webname + '.conf'
|
||||
logs = [assLogPath, errLogPath, confFile, rewriteFile]
|
||||
for i in logs:
|
||||
public.deleteFile(i)
|
||||
|
||||
@@ -65,6 +65,7 @@ CREATE TABLE IF NOT EXISTS `sites` (
|
||||
`path` TEXT,
|
||||
`status` TEXT,
|
||||
`index` TEXT,
|
||||
`type_id` INTEGER,
|
||||
`ps` TEXT,
|
||||
`edate` TEXT,
|
||||
`addtime` TEXT
|
||||
|
||||
@@ -469,15 +469,6 @@ function copyPass(password){
|
||||
$("#bt_copys").click();
|
||||
}
|
||||
|
||||
function readerTableChecked(){
|
||||
$('table').find('th').find('input').bind('click',function(){
|
||||
$('table').find('td').find('input').each(function(i,obj){
|
||||
checked = $(this).prop('checked');
|
||||
$(this).prop('checked',!checked);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function checkSelect(){
|
||||
setTimeout(function () {
|
||||
var num = $('input[type="checkbox"].check:checked').length;
|
||||
|
||||
+13
-19
@@ -797,26 +797,20 @@ function fly(a) {
|
||||
});
|
||||
};
|
||||
|
||||
function readerTableChecked(){
|
||||
$('thead').find('input').bind('click',function(){
|
||||
$('tbody').find('tr').each(function(i,obj){
|
||||
var fin = $(this).find('td')[0];
|
||||
checked = $(fin).find('input').prop('checked');
|
||||
$(fin).find('input').prop('checked',!checked);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//检查选中项
|
||||
function checkSelect(){
|
||||
setTimeout(function(){
|
||||
var checkList = $("input[name=id]");
|
||||
console.log(checkList);
|
||||
var count = 0;
|
||||
for(var i=0;i<checkList.length;i++){
|
||||
if(checkList[i].checked) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(count > 0){
|
||||
$("#allDelete").show();
|
||||
} else {
|
||||
$("#allDelete").hide();
|
||||
}
|
||||
|
||||
var num = $('input[type="checkbox"]:checked');
|
||||
console.log(num);
|
||||
var num = $('tbody').find('input[type="checkbox"]:checked').length;
|
||||
if (num == 1) {
|
||||
$('button[batch="true"]').hide();
|
||||
$('button[batch="false"]').show();
|
||||
@@ -1025,15 +1019,15 @@ function getSpeed(sele){
|
||||
function messageBox() {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: lan.bt.task_title,
|
||||
title: '消息盒子',
|
||||
area: "640px",
|
||||
closeBtn: 2,
|
||||
shadeClose: false,
|
||||
content: '<div class="bt-form">\
|
||||
<div class="bt-w-main">\
|
||||
<div class="bt-w-menu">\
|
||||
<p class="bgw" id="taskList" onclick="tasklist()">'+lan.bt.task_list+'(<span class="task_count">0</span>)</p>\
|
||||
<p onclick="remind()">'+lan.bt.task_msg+'(<span class="msg_count">0</span>)</p>\
|
||||
<p class="bgw" id="taskList" onclick="tasklist()">任务列表(<span class="task_count">0</span>)</p>\
|
||||
<p onclick="remind()">消息列表(<span class="msg_count">0</span>)</p>\
|
||||
<p onclick="execLog()">执行日志</p>\
|
||||
</div>\
|
||||
<div class="bt-w-con pd15">\
|
||||
|
||||
+65
-13
@@ -3,7 +3,7 @@
|
||||
* @param {Number} page 当前页
|
||||
* @param {String} search 搜索条件
|
||||
*/
|
||||
function getWeb(page, search) {
|
||||
function getWeb(page, search, type_id) {
|
||||
search = $("#SearchValue").prop("value");
|
||||
page = page == undefined ? '1':page;
|
||||
var order = getCookie('order');
|
||||
@@ -13,8 +13,15 @@ function getWeb(page, search) {
|
||||
order = '';
|
||||
}
|
||||
|
||||
var type = '';
|
||||
if ( typeof(type_id) == 'undefined' ){
|
||||
type = '&type_id=0';
|
||||
} else {
|
||||
type = '&type_id='+type_id;
|
||||
}
|
||||
|
||||
var sUrl = '/site/list';
|
||||
var pdata = 'limit=10&p=' + page + '&search=' + search + order;
|
||||
var pdata = 'limit=10&p=' + page + '&search=' + search + order + type;
|
||||
var loadT = layer.load();
|
||||
//取回数据
|
||||
$.post(sUrl, pdata, function(data) {
|
||||
@@ -124,6 +131,8 @@ function getWeb(page, search) {
|
||||
$(this).hide().after("<input class='baktext' type='text' data-id='"+dataid+"' name='bak' value='" + databak + "' placeholder='备注信息' onblur='getBakPost(\"sites\")' />");
|
||||
$(".baktext").focus();
|
||||
});
|
||||
|
||||
readerTableChecked();
|
||||
},'json');
|
||||
}
|
||||
|
||||
@@ -141,7 +150,6 @@ function getBakPost(b) {
|
||||
}
|
||||
|
||||
function setWebPs(b, e, a) {
|
||||
console.log(b,e,a);
|
||||
var d = layer.load({shade: true,shadeClose: false});
|
||||
var c = 'ps=' + a;
|
||||
$.post('/site/set_ps', 'id=' + e + "&" + c, function(data) {
|
||||
@@ -506,7 +514,7 @@ function webStart(wid, wname) {
|
||||
*/
|
||||
function webDelete(wid, wname){
|
||||
var thtml = "<div class='options'>\
|
||||
<label><input type='checkbox' id='delpath' name='path'><span>"+lan.site.root_dir+"</span></label>\
|
||||
<label><input type='checkbox' id='delpath' name='path'><span>根目录</span></label>\
|
||||
</div>";
|
||||
var info = '是否要删除同名根目录';
|
||||
safeMessage('删除站点'+"["+wname+"]",info, function(){
|
||||
@@ -514,7 +522,7 @@ function webDelete(wid, wname){
|
||||
if($("#delpath").is(":checked")){
|
||||
path='&path=1';
|
||||
}
|
||||
var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']});
|
||||
var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:10000,shade: [0.3, '#000']});
|
||||
$.post("/site/delete","id=" + wid + "&webname=" + wname + path, function(ret){
|
||||
layer.closeAll();
|
||||
layer.msg(ret.msg,{icon:ret.status?1:2})
|
||||
@@ -2099,6 +2107,12 @@ function getClassType(){
|
||||
for (var i = 0; i<rdata.length; i++) {
|
||||
$(select).append('<option value="'+rdata[i]['id']+'">'+rdata[i]['name']+'</option>');
|
||||
}
|
||||
|
||||
$(select).bind('change',function(){
|
||||
var select_id = $(this).val();
|
||||
// console.log(select_id);
|
||||
getWeb(1,'',select_id);
|
||||
})
|
||||
},'json');
|
||||
}
|
||||
getClassType();
|
||||
@@ -2108,7 +2122,6 @@ getClassType();
|
||||
|
||||
function setClassType(){
|
||||
$.post('/site/get_site_types',function(rdata){
|
||||
|
||||
var list = '';
|
||||
for (var i = 0; i<rdata.length; i++) {
|
||||
list +='<tr><td>' + rdata[i]['name'] + '</td>\
|
||||
@@ -2134,8 +2147,6 @@ function setClassType(){
|
||||
</div>\
|
||||
</div>'
|
||||
});
|
||||
|
||||
|
||||
},'json');
|
||||
}
|
||||
|
||||
@@ -2209,12 +2220,53 @@ function editClassType(id,name){
|
||||
}
|
||||
|
||||
|
||||
function moveClassTYpe(){
|
||||
$.post('/site/get_site_types',function(rdata){
|
||||
var option = '';
|
||||
for (var i = 0; i<rdata.length; i++) {
|
||||
option +='<option value="'+rdata[i]['id']+'">'+rdata[i]['name']+'</option>';
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: '350px',
|
||||
title: '设置站点分类',
|
||||
closeBtn: 2,
|
||||
shift: 0,
|
||||
content: '<div class="bt-form edit_site_type">\
|
||||
<div class="divtable mtb15" style="overflow:auto;height:80px;">\
|
||||
<div class="line"><span class="tname">默认站点</span>\
|
||||
<div class="info-r">\
|
||||
<select class="bt-input-text mr5" name="type_id" style="width:200px">'+option+'\
|
||||
</select>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="bt-form-submit-btn"><button onclick="setSizeClassType();" type="button" class="btn btn-sm btn-success">提交</button></div>\
|
||||
</div>'
|
||||
});
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function setSizeClassType(){
|
||||
var data = {};
|
||||
data['id'] = $('select[name=type_id]').val();
|
||||
var ids = [];
|
||||
$('table').find('td').find('input').each(function(i,obj){
|
||||
checked = $(this).prop('checked');
|
||||
if (checked) {
|
||||
ids.push($(this).val());
|
||||
}
|
||||
});
|
||||
data['site_ids'] = JSON.stringify(ids);
|
||||
$.post('/site/set_site_type',data, function(rdata){
|
||||
showMsg(rdata.msg,function(){
|
||||
if (rdata.status){
|
||||
layer.closeAll();
|
||||
}
|
||||
},{icon:rdata.status?1:2});
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,16 +23,12 @@
|
||||
<button onclick="siteDefaultPage();" class="btn btn-default btn-sm btn-title" type="button">修改默认页</button>
|
||||
<button onclick="getDefaultSite();" class="btn btn-default btn-sm btn-title" type="button">默认站点</button>
|
||||
<button onclick="setClassType();" class="btn btn-default btn-sm btn-title" type="button">分类管理</button>
|
||||
<span style="float: right;display: none;">
|
||||
<button batch="true" style="float: right; margin-left: 10px;" onclick="allDeleteSite();" class="btn btn-default btn-sm">删除选中</button>
|
||||
<span>
|
||||
<button batch="true" style="float: right; margin-left: 10px;display: none;" onclick="allDeleteSite();" class="btn btn-default btn-sm">删除选中</button>
|
||||
</span>
|
||||
|
||||
<div class="move_class">
|
||||
<button batch="false" style="float: right; margin-left: 10px;display: none;" class="btn btn-default btn-sm" onclick="site.batch_site('site_type')">移动至</button>
|
||||
<button batch="false" style="float: right; margin-left: 10px;display: none;" class="btn btn-default btn-sm" onclick="moveClassTYpe()">移动至</button>
|
||||
</div>
|
||||
<!-- <span id="allDelete" style="float: right;display: none;">
|
||||
<button onclick="allDeleteSite();" class="btn btn-default btn-sm">批量删除</button>
|
||||
</span> -->
|
||||
|
||||
<div class="divtable mtb10">
|
||||
<div class="tablescroll">
|
||||
|
||||
Reference in New Issue
Block a user