mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-04 17:44:38 +09:00
기본 마이그레이션용 XML및 ttxml에 대해 importing 100% 가능하도록 수정. importer 0.2 commit
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3947 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
1b8c765148
commit
c37932cc71
27 changed files with 1593 additions and 1294 deletions
|
|
@ -3,7 +3,10 @@
|
|||
* @author zero (zero@nzeo.com)
|
||||
* @brief importer에서 사용하는 javascript
|
||||
**/
|
||||
/* 회원정보와 게시물의 싱크 */
|
||||
|
||||
/**
|
||||
* 회원정보와 게시글/댓글등의 동기화 요청 및 결과 처리 함수
|
||||
**/
|
||||
function doSync(fo_obj) {
|
||||
exec_xml('importer','procImporterAdminSync', new Array(), completeSync);
|
||||
return false;
|
||||
|
|
@ -15,203 +18,144 @@ function completeSync(ret_obj) {
|
|||
}
|
||||
|
||||
|
||||
/* 회원정보 데이터 import */
|
||||
function doImportMember(fo_obj) {
|
||||
/**
|
||||
* xml파일을 DB입력전에 extract를 통해 분할 캐싱을 요청하는 함수
|
||||
**/
|
||||
var prepared = false;
|
||||
function doPreProcessing(fo_obj) {
|
||||
var xml_file = fo_obj.xml_file.value;
|
||||
if(!xml_file) return false;
|
||||
|
||||
var type = fo_obj.type.value;
|
||||
|
||||
xDisplay('importForm','none');
|
||||
xDisplay('process','block');
|
||||
xInnerHtml('status','');
|
||||
setTimeout(doPrepareDot, 50);
|
||||
|
||||
var params = new Array();
|
||||
params['xml_file'] = xml_file;
|
||||
params['total_count'] = fo_obj.total_count.value;
|
||||
params['success_count'] = fo_obj.success_count.value;
|
||||
params['readed_line'] = fo_obj.readed_line.value;
|
||||
params['type'] = type;
|
||||
|
||||
var response_tags = new Array("error","message", "total_count", "success_count", "readed_line", "is_finished");
|
||||
|
||||
exec_xml('importer','procImporterAdminMemberImport', params, completeImportMember, response_tags);
|
||||
var response_tags = new Array('error','message','type','total','cur','key','status');
|
||||
exec_xml('importer','procImporterAdminPreProcessing', params, completePreProcessing, response_tags);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function completeImportMember(ret_obj) {
|
||||
var total_count = ret_obj['total_count'];
|
||||
var success_count = ret_obj['success_count'];
|
||||
var readed_line = ret_obj['readed_line'];
|
||||
var is_finished = ret_obj['is_finished'];
|
||||
/* 준비중일때 .(dot) 찍어주는.. */
|
||||
function doPrepareDot() {
|
||||
if(prepared) return;
|
||||
|
||||
if(is_finished == '1') {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.total_count.value = 0;
|
||||
fo_obj.success_count.value = 0;
|
||||
fo_obj.readed_line.value = 0;
|
||||
fo_obj.xml_file.disabled = false;
|
||||
xGetElementById("status").style.display = "none";
|
||||
xGetElementById("status_button_prev").style.display = "block";
|
||||
xGetElementById("status_button").style.display = "none";
|
||||
|
||||
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
alert(ret_obj['message']);
|
||||
} else {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.total_count.value = total_count;
|
||||
fo_obj.success_count.value = success_count;
|
||||
fo_obj.readed_line.value = readed_line;
|
||||
fo_obj.xml_file.disabled = true;
|
||||
xGetElementById("status").style.display = "block";
|
||||
xGetElementById("status_button_prev").style.display = "none";
|
||||
xGetElementById("status_button").style.display = "block";
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
|
||||
doImportMember(fo_obj);
|
||||
}
|
||||
var str = xInnerHtml('status');
|
||||
if(str.length<1 || str.length - preProcessingMsg.length > 50) str = preProcessingMsg;
|
||||
else str += ".";
|
||||
xInnerHtml('status', str);
|
||||
setTimeout(doPrepareDot, 50);
|
||||
}
|
||||
|
||||
/* 쪽지 데이터 import */
|
||||
function doImportMessage(fo_obj) {
|
||||
var xml_file = fo_obj.xml_file.value;
|
||||
if(!xml_file) return false;
|
||||
/* 준비가 끝났을때 호출되는 함수 */
|
||||
function completePreProcessing(ret_obj, response_tags) {
|
||||
prepared = true;
|
||||
xInnerHtml('status','');
|
||||
|
||||
var status = ret_obj['status'];
|
||||
var message = ret_obj['message'];
|
||||
var type = ret_obj['type'];
|
||||
var total = parseInt(ret_obj['total'],10);
|
||||
var cur = parseInt(ret_obj['cur'],10);
|
||||
var key = ret_obj['key'];
|
||||
|
||||
if(status == -1) {
|
||||
xDisplay('importForm','block');
|
||||
xDisplay('process','none');
|
||||
xDisplay('btn_reload','block');
|
||||
xDisplay('btn_continue','none');
|
||||
alert(message);
|
||||
return;
|
||||
}
|
||||
|
||||
xDisplay('btn_reload','none');
|
||||
xDisplay('btn_continue','block');
|
||||
|
||||
var fo_obj = xGetElementById('fo_process');
|
||||
fo_obj.type.value = type;
|
||||
fo_obj.total.value = total;
|
||||
fo_obj.cur.value = cur;
|
||||
fo_obj.key.value = key;
|
||||
|
||||
var fo_import = xGetElementById('fo_import');
|
||||
if(fo_import && fo_import.target_module) fo_obj.target_module.value = fo_import.target_module.options[fo_import.target_module.selectedIndex].value;
|
||||
if(fo_import && fo_import.user_id) fo_obj.user_id.value = fo_import.user_id.value;
|
||||
|
||||
fo_obj.unit_count.value = fo_import.unit_count.options[fo_import.unit_count.selectedIndex].value;
|
||||
|
||||
// extract된 파일을 이용해서 import
|
||||
doImport();
|
||||
}
|
||||
|
||||
/* @brief 임포트 시작 */
|
||||
function doImport() {
|
||||
var fo_obj = xGetElementById('fo_process');
|
||||
|
||||
var params = new Array();
|
||||
params['xml_file'] = xml_file;
|
||||
params['total_count'] = fo_obj.total_count.value;
|
||||
params['success_count'] = fo_obj.success_count.value;
|
||||
params['readed_line'] = fo_obj.readed_line.value;
|
||||
|
||||
var response_tags = new Array("error","message", "total_count", "success_count", "readed_line", "is_finished");
|
||||
|
||||
exec_xml('importer','procImporterAdminMessageImport', params, completeImportMessage, response_tags);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function completeImportMessage(ret_obj) {
|
||||
var total_count = ret_obj['total_count'];
|
||||
var success_count = ret_obj['success_count'];
|
||||
var readed_line = ret_obj['readed_line'];
|
||||
var is_finished = ret_obj['is_finished'];
|
||||
|
||||
if(is_finished == '1') {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.total_count.value = 0;
|
||||
fo_obj.success_count.value = 0;
|
||||
fo_obj.readed_line.value = 0;
|
||||
fo_obj.xml_file.disabled = false;
|
||||
xGetElementById("status").style.display = "none";
|
||||
xGetElementById("status_button_prev").style.display = "block";
|
||||
xGetElementById("status_button").style.display = "none";
|
||||
|
||||
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
alert(ret_obj['message']);
|
||||
} else {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.total_count.value = total_count;
|
||||
fo_obj.success_count.value = success_count;
|
||||
fo_obj.readed_line.value = readed_line;
|
||||
fo_obj.xml_file.disabled = true;
|
||||
xGetElementById("status").style.display = "block";
|
||||
xGetElementById("status_button_prev").style.display = "none";
|
||||
xGetElementById("status_button").style.display = "block";
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
|
||||
doImportMessage(fo_obj);
|
||||
}
|
||||
}
|
||||
|
||||
/* 모듈 데이터 import */
|
||||
function doImportModule(fo_obj) {
|
||||
var target_module = fo_obj.target_module.options[fo_obj.target_module.selectedIndex].value;
|
||||
if(!target_module) return false;
|
||||
|
||||
var xml_file = fo_obj.xml_file.value;
|
||||
if(!xml_file) return false;
|
||||
|
||||
var params = new Array();
|
||||
params['xml_file'] = xml_file;
|
||||
params['target_module'] = target_module;
|
||||
params['total_count'] = fo_obj.total_count.value;
|
||||
params['success_count'] = fo_obj.success_count.value;
|
||||
params['readed_line'] = fo_obj.readed_line.value;
|
||||
|
||||
var response_tags = new Array("error","message", "total_count", "success_count", "readed_line", "is_finished");
|
||||
|
||||
exec_xml('importer','procImporterAdminModuleImport', params, completeImportModule, response_tags);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function completeImportModule(ret_obj, response_tags) {
|
||||
var total_count = ret_obj['total_count'];
|
||||
var success_count = ret_obj['success_count'];
|
||||
var readed_line = ret_obj['readed_line'];
|
||||
var is_finished = ret_obj['is_finished'];
|
||||
|
||||
if(is_finished == '1') {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.target_module.disabled = false;
|
||||
fo_obj.xml_file.disabled = false;
|
||||
fo_obj.total_count.value = 0;
|
||||
fo_obj.success_count.value = 0;
|
||||
fo_obj.readed_line.value = 0;
|
||||
|
||||
xGetElementById("status").style.display = "none";
|
||||
xGetElementById("status_button_prev").style.display = "block";
|
||||
xGetElementById("status_button").style.display = "none";
|
||||
|
||||
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
|
||||
alert(ret_obj['message']);
|
||||
} else {
|
||||
var fo_obj = xGetElementById("fo_import");
|
||||
fo_obj.target_module.disabled = true;
|
||||
fo_obj.xml_file.disabled = true;
|
||||
fo_obj.total_count.value = total_count;
|
||||
fo_obj.success_count.value = success_count;
|
||||
fo_obj.readed_line.value = readed_line;
|
||||
|
||||
xGetElementById("status").style.display = "block";
|
||||
xGetElementById("status_button_prev").style.display = "none";
|
||||
xGetElementById("status_button").style.display = "block";
|
||||
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
|
||||
doImportModule(fo_obj);
|
||||
}
|
||||
}
|
||||
|
||||
/* TTXML 데이터 import */
|
||||
function doImportTTXML(fo_obj) {
|
||||
var target_module = fo_obj.target_module.options[fo_obj.target_module.selectedIndex].value;
|
||||
if(!target_module) return false;
|
||||
|
||||
var xml_file = fo_obj.xml_file.value;
|
||||
if(!xml_file) return false;
|
||||
|
||||
var params = new Array();
|
||||
params['xml_file'] = xml_file;
|
||||
params['target_module'] = target_module;
|
||||
params['total_count'] = fo_obj.total_count.value;
|
||||
params['success_count'] = fo_obj.success_count.value;
|
||||
params['readed_line'] = fo_obj.readed_line.value;
|
||||
params['type'] = fo_obj.type.value;
|
||||
params['total'] = fo_obj.total.value;
|
||||
params['cur'] = fo_obj.cur.value;
|
||||
params['key'] = fo_obj.key.value;
|
||||
params['target_module'] = fo_obj.target_module.value;
|
||||
params['unit_count'] = fo_obj.unit_count.value;
|
||||
params['user_id'] = fo_obj.user_id.value;
|
||||
|
||||
var response_tags = new Array("error","message", "total_count", "success_count", "readed_line", "is_finished");
|
||||
displayProgress(params['total'], params['cur']);
|
||||
|
||||
exec_xml('importer','procImporterAdminTTXMLImport', params, completeImportTTXML, response_tags);
|
||||
var response_tags = new Array('error','message','type','total','cur','key');
|
||||
|
||||
show_waiting_message = false;
|
||||
exec_xml('importer','procImporterAdminImport', params, completeImport, response_tags);
|
||||
show_waiting_message = true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function completeImportTTXML(ret_obj, response_tags) {
|
||||
var total_count = ret_obj['total_count'];
|
||||
var success_count = ret_obj['success_count'];
|
||||
var readed_line = ret_obj['readed_line'];
|
||||
var is_finished = ret_obj['is_finished'];
|
||||
|
||||
xGetElementById("status").style.display = 'block';
|
||||
xInnerHtml("status", ret_obj['message']);
|
||||
/* import중 표시 */
|
||||
function completeImport(ret_obj, response_tags) {
|
||||
var message = ret_obj['message'];
|
||||
var type = ret_obj['type'];
|
||||
var total = parseInt(ret_obj['total'],10);
|
||||
var cur = parseInt(ret_obj['cur'],10);
|
||||
var key = ret_obj['key'];
|
||||
|
||||
alert(ret_obj['message']);
|
||||
displayProgress(total, cur);
|
||||
|
||||
var fo_obj = xGetElementById('fo_process');
|
||||
fo_obj.type.value = type;
|
||||
fo_obj.total.value = total;
|
||||
fo_obj.cur.value = cur;
|
||||
fo_obj.key.value = key;
|
||||
|
||||
// extract된 파일을 이용해서 import
|
||||
if(total>cur) doImport();
|
||||
else {
|
||||
alert(message);
|
||||
fo_obj.reset();
|
||||
xDisplay('process','none');
|
||||
xDisplay('importForm','block');
|
||||
xGetElementById('fo_import').reset();
|
||||
}
|
||||
}
|
||||
|
||||
/* 상태 표시 함수 */
|
||||
function displayProgress(total, cur) {
|
||||
// 진행률 구함
|
||||
var per = 0;
|
||||
if(total > 0) per = Math.round(cur/total*100);
|
||||
else per = 100;
|
||||
if(!per) per = 1;
|
||||
|
||||
var status = '<div class="progressBox"><div class="progress1" style="width:'+per+'%;">'+per+'% </div>';
|
||||
status += '<div class="progress2">'+cur+'/'+total+'</div>';
|
||||
status += '<div class="clear"></div></div>';
|
||||
xInnerHtml('status', status);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue