function maPostNoMsg(method,args,callback){ var _args = null; if (typeof(args) == 'string'){ _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } $.post('/plugins/run', {name:'migration_api', func:method, args:_args}, function(data) { if (!data.status){ layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } if(typeof(callback) == 'function'){ callback(data); } },'json'); } function maPost(method,args,callback){ var _args = null; if (typeof(args) == 'string'){ _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'migration_api', func:method, args:_args}, function(data) { 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'); } function maAsyncPost(method,args){ var _args = null; if (typeof(args) == 'string'){ _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } return syncPost('/plugins/run', {name:'migration_api', func:method, args:_args}); } function maPostCallbak(method, args, callback){ var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); var req_data = {}; req_data['name'] = 'migration_api'; req_data['func'] = method; args['version'] = '1.0'; if (typeof(args) == 'string'){ req_data['args'] = JSON.stringify(toArrayObject(args)); } else { req_data['args'] = JSON.stringify(args); } $.post('/plugins/callback', req_data, function(data) { 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'); } function selectProgress(val){ $('.step_head li').removeClass('active'); $('.step_head li').each(function(){ var v = $(this).find('span').text(); if (val == v){ $(this).addClass('active'); } }); } function initStep1(){ var url = $('input[name="sync_url"]').val(); var token = $('input[name="sync_token"]').val(); maPost('step_one',{url:url,token:token}, function(rdata){ var rdata = $.parseJSON(rdata.data); showMsg(rdata.msg,function(){ if (rdata.status){ initStep2(); } },{ icon: rdata.status ? 1 : 2 }); }); } function initStep2(){ maPost('step_two',{}, function(rdata){ var rdata = $.parseJSON(rdata.data); showMsg(rdata.msg,function(){ if (rdata.status){ selectProgress(2); $('.psync_info').hide(); var info = rdata.data; var body = '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
服务当前服务器远程服务器
网站服务'+info['local']['webserver']+''+info['remote']['webserver']+'
安装MySQL'+(info['local']['mysql']?'是':'否')+''+(info['remote']['mysql']?'是':'否')+'
安装PHP'+(info['local']['php'].join('/'))+''+(info['remote']['php'].join('/')) +'
可用磁盘'+info['local']['disk']+''+info['remote']['disk'][0]['size'][0]+'
\
'; body += '
\ \ \ \
'; $('.psync_path').html(body); $('.psync_path').show(); $('.pathNext').click(function(){ selectProgress(3); initStep3(); }); } },{ icon: rdata.status ? 1 : 2 }); }); } function initStep3(){ maPost('step_three',{}, function(rdata){ var rdata = $.parseJSON(rdata.data); showMsg(rdata.msg,function(){ if (rdata.status){ var pdata = rdata.data; var site_li = ''; for (var i = 0; i < pdata.sites.length; i++) { site_li+='
  • \ \
  • '; } $('#sites_li').html(site_li); var db_li = ''; for (var i = 0; i < pdata.databases.length; i++) { db_li+='
  • \ \
  • '; } $('#db_li').html(db_li); $('.psync_path').hide(); $('.psync_data').show(); $('.dataMigrate').click(function(){ selectProgress(4); initStep4(); }); $('.dataBack').click(function(){ selectProgress(3); $('.psync_data').hide(); $('.psync_path').show(); }); } },{ icon: rdata.status ? 1 : 2 }); }); } function renderMigrationProgress(){ maPostNoMsg('get_speed',{}, function(rdata){ var rdata = $.parseJSON(rdata.data); console.log('sss:',rdata); if (rdata.status){ $('.psync_migrate .action').text(rdata['data']['action']); $('.psync_migrate .done').text(rdata['data']['done']); $('.psync_migrate pre').text(rdata['data']['log']); renderMigrationProgress(); } else{ layer.msg(rdata.msg,{icon:1}); } }); } function initStep4(){ var site_checked = ''; $('input[name="sites"]:checked').each(function(){ site_checked += $(this).val()+','; }); var databases_checked = ''; $('input[name="databases"]').each(function(){ databases_checked+=$(this).val()+','; }); maPost('step_four',{sites:site_checked,databases:databases_checked}, function(rdata){ var rdata = $.parseJSON(rdata.data); var progress = '
    \
    \
    --\ 当前: --[取消]
    \
    \
    \ 16.67%
    \
    \
    \
    \
    \
            ';
    
    
            // var end = '
    \ //
    \ //

    传输大小: 4.92 KB,耗时: 0分6秒,平均速度: 840 B/s

    \ //

    \ // \ // 迁移日志\ //

    \ //
    \ //
    '; $('.psync_data').hide(); $('.psync_migrate').html(progress); $('.psync_migrate').show(); renderMigrationProgress(); }); } function initStep(){ maPost('get_conf',{}, function(rdata){ var rdata = $.parseJSON(rdata.data); $('input[name="sync_url"]').val(rdata.data['url']); $('input[name="sync_token"]').val(rdata.data['token']); }); $('.infoNext').click(function(){ var step = $('.step_head .active span').text(); switch(step){ case '1':initStep1();break; case '2':initStep2();break; case '3':initStep3();break; case '4':initStep4();break; } }); }