diff --git a/plugins/mysql-apt/js/mysql-apt.js b/plugins/mysql-apt/js/mysql-apt.js index 94acbd64e..5e736c44f 100755 --- a/plugins/mysql-apt/js/mysql-apt.js +++ b/plugins/mysql-apt/js/mysql-apt.js @@ -162,34 +162,6 @@ function myPort(){ }); } - -//数据库存储信置 -function changeMySQLDataPath(act) { - if (act != undefined) { - layer.confirm(lan.soft.mysql_to_msg, { closeBtn: 2, icon: 3 }, function() { - var datadir = $("#datadir").val(); - var data = 'datadir=' + datadir; - var loadT = layer.msg(lan.soft.mysql_to_msg1, { icon: 16, time: 0, shade: [0.3, '#000'] }); - $.post('/database?action=SetDataDir', data, function(rdata) { - layer.close(loadT) - layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); - }); - }); - return; - } - - $.post('/database?action=GetMySQLInfo', '', function(rdata) { - var LimitCon = '

\ - \ - \ -

'; - $(".soft-man-con").html(LimitCon); - }); -} - - - - //数据库配置状态 function myPerfOpt() { //获取MySQL配置 @@ -1691,12 +1663,12 @@ function getMasterRepSlaveListPage(){ } -function deleteSlave(){ - myPost('delete_slave', {}, function(data){ +function deleteSlave(sign){ + myPost('delete_slave', {sign:sign}, function(data){ var rdata = $.parseJSON(data.data); showMsg(rdata['msg'], function(){ masterOrSlaveConf(); - },{},3000); + },{icon:rdata.status?1:2,time:3000},3000); }); } @@ -1704,28 +1676,70 @@ function deleteSlave(){ function getFullSyncStatus(db){ var timeId = null; - var btn = '
开始
'; - var loadOpen = layer.open({ - type: 1, - title: '全量同步['+db+']', - area: '500px', - content:"
\ -
\ - \ -
\ -
0%
\ -
\ -
\ - "+btn+"\ -
", - cancel: function(){ - clearInterval(timeId); + myPost('get_slave_list', {page:1,page_size:100}, function(data){ + var rdata = $.parseJSON(data.data); + var rsource = rdata.data; + + if (db == 'ALL' && rsource.length>1){ + layer.msg("多主不支持该模式!",{icon:2}); + return; + } + + var dataSource = ''; + if (rsource.length>1){ + var sourceList = ''; + for (var i = 0; i < rsource.length; i++) { + if ('Channel_Name' in rsource[i]){ + sourceList += ''; + } + } + + dataSource = "

\ + 同步数据源:\ + \ +

"; } + + layer.open({ + type: 1, + title: '全量同步['+db+']', + area: '500px', + content:"
\ +
\ + "+dataSource+"\ + \ +
\ +
0%
\ +
\ +
\ +
\ + 开始\ +
\ +
", + cancel: function(){ + clearInterval(timeId); + }, + success:function(){ + $('#begin_full_sync').click(function(){ + var val = $(this).data('status'); + var sign = $('select[name="data_source"]').val(); + if (val == 'init'){ + fullSync(db, sign, 1); + timeId = setInterval(function(){ + fullSync(db,sign,0); + }, 1000); + $(this).data('status','starting'); + } else { + layer.msg("正在同步中..",{icon:0}); + } + }); + } + }); }); - function fullSync(db,begin){ + function fullSync(db,sign,begin){ - myPostN('full_sync', {db:db,begin:begin}, function(data){ + myPostN('full_sync', {db:db,sign:sign,begin:begin}, function(data){ var rdata = $.parseJSON(data.data); $('#full_msg').text(rdata['msg']); $('.progress-bar').css('width',rdata['progress']+'%'); @@ -1920,18 +1934,29 @@ function addSlaveSyncUser(ip=''){
同步账户
\
同步密码
\
\ - CMD[最好填好]\ + CMD[必须填写]\
\
\ \ ", success:function(){ $('textarea[name="cmd"]').html(cmd); - $('textarea[name="cmd"]').change(function(){ var val = $(this).val(); - var vlist = val.split(','); var a = {}; + if (val.toLowerCase().indexOf('for')>0){ + cmd_tmp = val.split('for'); + val = cmd_tmp[0].trim(); + + const channel_str = cmd_tmp[1].trim(); + const ch_reg = /channel \'(.*)\';/; + var match_val = channel_str.match(ch_reg); + if (match_val.length>1){ + a['channel'] = match_val[1]; + } + } + + var vlist = val.split(','); for (var i in vlist) { var tmp = toTrim(vlist[i]); var tmp_a = tmp.split(" "); @@ -2098,7 +2123,7 @@ function getSlaveUserList(){ layerId = layer.open({ type: 1, title: '同步账户列表', - area: '500px', + area: '600px', content:"
\
\
\ @@ -2122,7 +2147,7 @@ function getSlaveSSHList(page=1){ layerId = layer.open({ type: 1, title: 'SSH列表', - area: '500px', + area: '600px', content:"
\
\
\ @@ -2230,10 +2255,16 @@ function masterOrSlaveConf(version=''){ myPost('get_slave_list', _data, function(data){ var rdata = $.parseJSON(data.data); var list = ''; + + var isHasSign = false; for(i in rdata.data){ var v = rdata.data[i]; - var status = "异常"; + if ('Channel_Name' in v){ + isHasSign = true; + } + + var status = "异常"; if (v['Slave_SQL_Running'] == 'Yes' && v['Slave_IO_Running'] == 'Yes'){ status = "正常"; } @@ -2245,13 +2276,23 @@ function masterOrSlaveConf(version=''){ list += ''; list += ''; list += ''; + + if (isHasSign){ + list += ''; + } + list += ''; list += ''; list += ''; } + var signThead_th = ''; + if (isHasSign){ + var signThead_th = ''; + } + var con = '
\
\
' + rdata.data[i]['Master_Log_File'] +'' + rdata.data[i]['Slave_IO_Running'] +'' + rdata.data[i]['Slave_SQL_Running'] +'' + v['Channel_Name'] +'' + status +'' + - '删除' + + '删除' + '
标识
\ @@ -2262,6 +2303,7 @@ function masterOrSlaveConf(version=''){ \ \ \ + '+signThead_th+'\ \ \ \ @@ -2276,22 +2318,74 @@ function masterOrSlaveConf(version=''){ // $(".table_slave_status_list").html(con); - $('.db_error').click(function(){ + $(".btn_delete_slave").click(function(){ + var id = $(this).data('id'); + var v = rdata.data[id]; + if ('Channel_Name' in v){ + deleteSlave(v['Channel_Name']); + } else{ + deleteSlave(); + } + }); + + $('.db_error').click(function(){ + var id = $(this).data('id'); + var info = rdata.data[id]; + + var err_line = ""; + err_line +="\ + \ + \ + "; + err_line +="\ + \ + \ + "; + + err_line +="\ + \ + \ + "; + layer.open({ type: 1, title: '同步异常信息', - area: '500px', - content:"
\ -
"+v['Error']+"
\ -
\ - \ + area: ['600px','300px'], + btn:['复制错误',"取消"], + content:"\ +
\ +
\ +
日志IOSQL状态操作
IO错误"+ (info['Last_IO_Error'] == '' ? '无':info['Last_IO_Error'])+"
SQL错误"+(info['Last_SQL_Error'] == '' ? '无':info['Last_SQL_Error'])+"
状态"+(info['Slave_SQL_Running_State'] == '' ? '无':info['Slave_SQL_Running_State']) +"
\ + \ + \ + \ + \ + "+ err_line +"\ +
类型内容
\ +
\
\ - ", + ", success:function(){ - copyText(v['Error']); - $('.class-copy-db-err').click(function(){ - copyText(v['Error']); - }); + // copyText(v['Error']); + // $('.class-copy-db-err').click(function(){ + // copyText(v['Error']); + // }); + }, + yes:function(){ + if (info['Last_IO_Error'] != ''){ + copyText(info['Last_IO_Error']); + return; + } + + if (info['Last_SQL_Error'] != ''){ + copyText(info['Last_SQL_Error']); + return; + } + + if (info['Slave_SQL_Running_State'] != ''){ + copyText(info['Slave_SQL_Running_State']); + return; + } } }); });