issue 846 : modify javascript to support new specification.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9805 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-11-07 09:38:43 +00:00
parent 0fd3d7e085
commit 1b56417f47
4 changed files with 19 additions and 16 deletions

View file

@ -23,6 +23,8 @@
* @brief Check whether the passing filename exists or not. Detect the file type, too.
*/
function procImporterAdminCheckXmlFile() {
global $lang;
$filename = Context::get('filename');
$isExists = 'false';

View file

@ -16,8 +16,7 @@
<p class="a checkxml">
<input type="text" name="xml_file" value="./" />
<button type="button">{$lang->cmd_check_path}</button>
<em class="desc error">{$lang->msg_no_xml_file}</em>
<em class="desc success">{$lang->msg_exist_xml_file}</em>
<em class="desc"></em><!--//class="error|success"-->
</p>
</li>
<li class="xml ttxml modulefinder">
@ -81,8 +80,7 @@
<p class="a checkxml">
<input type="text" name="xml_file" value="./" />
<button type="button">{$lang->cmd_check_path}</button>
<em class="desc error">{$lang->msg_no_xml_file}</em>
<em class="desc success">{$lang->msg_exist_xml_file}</em>
<em class="desc">{$lang->msg_no_xml_file}</em>
</p>
</li>
<li class="syncmember">
@ -104,8 +102,7 @@
<p class="a checkxml">
<input type="text" name="xml_file" value="./" />
<button type="button">{$lang->cmd_check_path}</button>
<em class="desc error">{$lang->msg_no_xml_file}</em>
<em class="desc success">{$lang->msg_exist_xml_file}</em>
<em class="desc"></em><!--//class="error|success"-->
</p>
</li>
</ul>

View file

@ -11,7 +11,7 @@ jQuery(function($){
$('.checkxml')
.find('input:text')
.change(function(){
$(this).closest('.checkxml').find('.desc').hide();
$(this).closest('.checkxml').find('.desr').hide();
})
.end()
.find('button')
@ -22,7 +22,7 @@ $('.checkxml')
$form = $this.closest('form');
$container = $this.closest('.checkxml');
$input = $container.find('input').prop('disabled', true).addClass('loading');
$messages = $container.find('.desc').hide();
$message = $container.find('.desc').hide();
function on_complete(data) {
var $ul, $ttxml, $xml;
@ -30,10 +30,12 @@ $('.checkxml')
$ul = $this.closest('ul');
$xml = $ul.find('>.xml');
$ttxml = $ul.find('>.ttxml');
$message.text(data.result_message);
// when the file doesn't exists or any other error occurs
if(data.error || data.exists != 'true') {
$messages.filter('.error').fadeIn(300);
$message.attr('class', 'desc error').fadeIn(300);
$ttxml = $ttxml.filter(':visible');
$ttxml.eq(-1).slideUp(100, function(){
$ttxml = $ttxml.slice(0,-1).eq(-1).slideUp(100,arguments.callee);
@ -43,7 +45,7 @@ $('.checkxml')
}
restore();
$messages.filter('.success').fadeIn(300);
$message.attr('class', 'desc success').fadeIn(300);
$form.find(':submit').removeAttr('disabled');
$syncmember = $form.find('.syncmember:hidden');

View file

@ -3,10 +3,12 @@
* @author NHN (developers@xpressengine.com)
* @brief importer에서 사용하는 javascript
**/
jQuery(function($){$('.checkxml').find('input:text').change(function(){$(this).closest('.checkxml').find('.desr').hide()}).end().find('button').click(function(){var $this,$container,$input,$messages,$loading,$form,$syncmember,count;$this=$(this).prop('disabled',true);$form=$this.closest('form');$container=$this.closest('.checkxml');$input=$container.find('input').prop('disabled',true).addClass('loading');$message=$container.find('.desc').hide()
function on_complete(data){var $ul,$ttxml,$xml;$ul=$this.closest('ul');$xml=$ul.find('>.xml');$ttxml=$ul.find('>.ttxml');$message.text(data.result_message);if(data.error||data.exists!='true'){$message.attr('class','desc error').fadeIn(300);$ttxml=$ttxml.filter(':visible');$ttxml.eq(-1).slideUp(100,function(){$ttxml=$ttxml.slice(0,-1).eq(-1).slideUp(100,arguments.callee)});$form.find(':submit').attr('disabled','disabled');return restore()};restore();$message.attr('class','desc success').fadeIn(300);$form.find(':submit').removeAttr('disabled');$syncmember=$form.find('.syncmember:hidden');if(data.type=='XML'){$xml.not(':visible').add($syncmember).slideDown(300)}else if(data.type=='TTXML'){$ttxml.not(':visible').add($syncmember).slideDown(300);$form.find('input[name=type]').val('ttxml')}}
function restore(){$input.prop('disabled',false).removeClass('loading');$this.prop('disabled',false);$form.find('.syncmember:visible').slideUp(100);return false};show_waiting_message=false;$.exec_json('importer.procImporterAdminCheckXmlFile',{filename:$.trim($input.val())},on_complete)}).end().find('.desc').hide().end().closest('ul').find('>li.ttxml').hide().end().end().closest('form').find(':submit').attr('disabled','disabled');$('.syncmember').hide()})
function doSync(fo_obj){exec_xml('importer','procImporterAdminSync',[],function(ret){alert(ret.message);location.href=location.href});return false}
function doPreProcessing(form){var xml_file,type,resp,prepared=false,$=jQuery,$status,$process,$form;xml_file=form.elements['xml_file'].value;type=form.elements['type'].value;if(!xml_file)return false;$form=$('#importForm').hide();$process=$('#process').show();$status=$('#status').empty();(function(){if(prepared)return;var str=$status.html();(!str.length||str.length-preProcessingMsg.length>50)?str=preProcessingMsg:str+='.';$status.html(str);setTimeout(arguments.callee,50)})();setTimeout(doPrepareDot,50)
function on_complete(ret){var $reload,$cont,fo_proc,fo_import,elems,i,c,key,to_copy;prepared=true;$status.empty();$reload=$('#btn_reload');$cont=$('#btn_continue');if(ret.status==-1){$form.show();$reload.show();$process.hide();$cont.hide();return alert(ret.message)};$reload.hide();$cont.show();fo_proc=get_by_id('fo_process');elems=fo_proc.elements;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};fo_import=get_by_id('fo_import');if(fo_import){to_copy=['target_module','guestbook_target_module','user_id','unit_count'];for(i=0,c=to_copy.length;i<c;i++){key=to_copy[i];if(fo_import.elements[key])fo_proc.elements[key].value=fo_import.elements[key].value}};doImport()};exec_xml('importer','procImporterAdminPreProcessing',{type:type,xml_file:xml_file},on_complete,resp=['error','message','type','total','cur','key','status']);return false}
function doImport(){var form=get_by_id('fo_process'),elems=form.elements,i,c,params={},resp;for(i=0,c=elems.length;i<c;i++)params[elems[i].name]=elems[i].value;displayProgress(params.total,params.cur)
function on_complete(ret,response_tags){var i,c,key;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret_obj[key]:0};ret.total=parseInt(ret.total,10)||0;ret.cur=parseInt(ret.cur,10)||0;if(ret.total>ret.cur){doImport()}else{alert(ret.message);try{form.reset();get_by_id('fo_import').reset();jQuery('#process').hide();jQuery('#importForm').show()}catch(e){}}};show_waiting_message=false;exec_xml('importer','procImporterAdminImport',params,on_complete,resp=['error','message','type','total','cur','key']);show_waiting_message=true;return false}
function displayProgress(total,cur){var per,stat,$stat;per=Math.max(total?Math.round(cur/total*100):100,1);$stat=jQuery('#status');if(!$stat.find('div.progress1').length)$stat.html('<div class="progressBox"><div class="progress1"></div><div class="progress2"></div></div>');$stat.find('div.progress1').html(per+'&nbsp;').css('width',per+'%').end().find('div.progress2').text(cur+'/'+total)}
function insertSelectedModule(id,module_srl,mid,browser_title){get_by_id(id).value=module_srl;get_by_id('_'+id).value=browser_title+' ('+mid+')'}
function doPreProcessing(form,formId){var xml_file,type,resp,prepared=false,$=jQuery,$status,$process,$form;xml_file=form.elements['xml_file'].value;type=form.elements['type'].value;if(!xml_file)return false;$process=$('#process');if(!$process.find('.bg').length)$process.prepend('<span class="bg" />').appendTo('body');$('a[href="#process"].modalAnchor').trigger('open.mw');exec_xml('importer','procImporterAdminPreProcessing',{type:type,xml_file:xml_file},on_complete,resp=['error','message','type','total','cur','key','status'])
function on_complete(ret){var $reload,$cont,fo_proc,elems,i,c,key,to_copy;prepared=true;if(ret.status==-1)return alert(ret.message);fo_proc=get_by_id('fo_process');elems=fo_proc.elements;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};fo_import=get_by_id(formId);if(fo_import){to_copy=['target_module','guestbook_target_module','user_id','unit_count'];for(i=0,c=to_copy.length;i<c;i++){key=to_copy[i];if(fo_import.elements[key])fo_proc.elements[key].value=fo_import.elements[key].value}};jQuery('#preProgressMsg').hide();jQuery('#progressMsg').show();doImport(formId)};return false}
function doImport(formId){var form=get_by_id('fo_process'),elems=form.elements,i,c,params={},resp;for(i=0,c=elems.length;i<c;i++)params[elems[i].name]=elems[i].value
function on_complete(ret,response_tags){var i,c,key;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};ret.total=parseInt(ret.total,10)||0;ret.cur=parseInt(ret.cur,10)||0;percent=parseInt((ret.cur/ret.total)*100);jQuery('#totalCount').text(ret.total);jQuery('#completeCount').text(ret.cur);jQuery('#progressBar').width(percent+'%');jQuery('#progressPercent').html(percent+"%");if(ret.total>ret.cur){doImport(formId)}else{function resultAlertMessage(){alert(ret.message);jQuery('a[href="#process"].modalAnchor').unbind('before-close.mw').trigger('close.mw').find('#progressBar').width(1).end().find('#progressPercent').html('0%').end();try{form.reset();get_by_id(formId).reset()}catch(e){};jQuery('span.btn > input[type=submit]').attr('disabled','disabled')};fo_import=get_by_id(formId);if(fo_import!=null&&fo_import.isSync.checked){exec_xml('importer','procImporterAdminSync',params,function(ret){if(ret&&(!ret.error||ret.error=='0'))resultAlertMessage()},resp=['error','message'])}else resultAlertMessage()}};show_waiting_message=false;exec_xml('importer','procImporterAdminImport',params,on_complete,resp=['error','message','type','total','cur','key']);show_waiting_message=true;return false}
function displayProgress(total,cur){var per,stat,$stat;per=Math.max(total?Math.round(cur/total*100):100,1);$stat=jQuery('#status');if(!$stat.find('div.progress1').length)$stat.html('<div class="progressBox"><div class="progress1"></div><div class="progress2"></div></div>');$stat.find('div.progress1').html(per+'&nbsp;').css('width',per+'%').end().find('div.progress2').text(cur+'/'+total)}