/**
* Created by Jacky.Gao on 2017-02-12.
*/
import {formatDate,resetDirty} from '../Utils.js';
import {alert,confirm} from '../MsgBox.js';
export default class OpenDialog{
constructor(context){
this.context=context;
this.reportFilesData={};
this.dialog=$(`
`);
const body=this.dialog.find('.modal-body'),footer=this.dialog.find(".modal-footer");
this.initBody(body);
}
initBody(body){
const providerGroup=$(`${window.i18n.dialog.open.source}
`);
this.providerSelect=$(``);
providerGroup.append(this.providerSelect);
body.append(providerGroup);
const tableContainer=$(`
`);
body.append(tableContainer);
const fileTable=$(`
${window.i18n.dialog.open.fileName}
${window.i18n.dialog.open.modDate}
${window.i18n.dialog.open.open}
${window.i18n.dialog.open.del}
`);
this.fileTableBody=$(` `);
fileTable.append(this.fileTableBody);
tableContainer.append(fileTable);
const _this=this;
this.providerSelect.change(function(){
let value=$(this).val();
if(!value || value===''){
return;
}
_this.fileTableBody.empty();
let reportFiles=_this.reportFilesData[value];
if(!reportFiles){
return;
}
for(let file of reportFiles){
let tr=$(` `);
_this.fileTableBody.append(tr);
tr.append(`${file.name} `);
tr.append(`${formatDate(file.updateDate)} `);
let openCol=$(` `);
tr.append(openCol);
let openIcon=$(` `);
openCol.append(openIcon);
openIcon.click(function(){
confirm(`${window.i18n.dialog.open.openConfirm}[${file.name}]?`,function(){
let fullFile=value+encodeURI(encodeURI(file.name));
window.parent.postMessage({'bifile':fullFile},'*');
let path=window._server+"/designer?_u="+fullFile;
window.open(path,"_self");
});
});
let deleteCol=$(` `);
tr.append(deleteCol);
let deleteIcon=$(` `);
deleteCol.append(deleteIcon);
deleteIcon.click(function(){
confirm(`${window.i18n.dialog.open.delConfirm}`+file.name,function(){
let fullFile=value+file.name;
$.ajax({
type:'POST',
data:{file:fullFile},
url:window._server+"/designer/deleteReportFile",
success:function(){
tr.remove();
let index=reportFiles.indexOf(file);
reportFiles.splice(index,1);
},
error:function(response){
if(response && response.responseText){
alert("服务端错误:"+response.responseText+"");
}else{
alert(`${window.i18n.dialog.open.delFail}`);
}
}
});
});
});
}
_this.currentProviderPrefix=value;
_this.currentReportFiles=reportFiles;
});
}
show(){
this.providerSelect.empty();
this.fileTableBody.empty();
this.reportFilesData={};
const _this=this;
$.ajax({
url:window._server+'/designer/loadReportProviders',
success:function(providers){
for(let provider of providers){
let {reportFiles,name,prefix}=provider;
_this.reportFilesData[prefix]=reportFiles;
_this.providerSelect.append(`${name} `);
}
_this.providerSelect.trigger('change');
},
error:function(response){
if(response && response.responseText){
alert("服务端错误:"+response.responseText+"");
}else{
alert(`${window.i18n.dialog.open.loadFail}`);
}
}
});
this.dialog.modal('show');
}
}