|
|
@@ -62,7 +62,7 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
if(btn == 'cancel') {
|
|
|
return;
|
|
|
}
|
|
|
- me.saveAsXml(null, function() {
|
|
|
+ me.saveAsXml(function() {
|
|
|
me.el.mask('loading...');
|
|
|
Ext.Ajax.request({
|
|
|
url:'kanbanHistory/backup/byKanban/' + modelCode,
|
|
|
@@ -83,7 +83,7 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
});
|
|
|
|
|
|
});
|
|
|
- });
|
|
|
+ },this,true,'备份' + Ext.Date.format(new Date(), 'YmdHis'));
|
|
|
}
|
|
|
}, {
|
|
|
xtype: 'button',
|
|
|
@@ -145,16 +145,36 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
if(!xml){
|
|
|
showErrorMsg('提示','请先输入内容');
|
|
|
}else{
|
|
|
- var bol = me.validateXmlFormat(xml);
|
|
|
- if(!bol){
|
|
|
+ var xmldom = me.validateXmlFormat(xml);
|
|
|
+ if(!xmldom){
|
|
|
return;
|
|
|
}
|
|
|
- record.set('content',xml);
|
|
|
+
|
|
|
+ var titleStr = me.XML2String(xmldom.getElementsByTagName('title')[0]);
|
|
|
+ titleStr = titleStr.substring(7,titleStr.length-1-7);
|
|
|
+ while(titleStr.startsWith('\n') || titleStr.startsWith(' ')) {
|
|
|
+ titleStr = titleStr.substring(1);
|
|
|
+ }
|
|
|
+ while(titleStr.endsWith('\n') || titleStr.endsWith(' ')) {
|
|
|
+ titleStr = titleStr.substring(0,titleStr.length-1);
|
|
|
+ }
|
|
|
+ record.set('title', titleStr);
|
|
|
+ record.set('content',me.XML2String(xmldom.getElementsByTagName('content')[0]));
|
|
|
modelbuilderpanel.fireEvent('repaintcomponent',modelbuilderpanel,record);
|
|
|
Ext.getCmp('importWin').close();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ XML2String: function(xmlObject) {
|
|
|
+ // for IE
|
|
|
+ if (window.ActiveXObject) {
|
|
|
+ return xmlobject.xml;
|
|
|
+ }
|
|
|
+ // for other browsers
|
|
|
+ else {
|
|
|
+ return (new XMLSerializer()).serializeToString(xmlObject);
|
|
|
+ }
|
|
|
+ },
|
|
|
validateXmlFormat:function(xml){
|
|
|
if(DOMParser){
|
|
|
var parser = new DOMParser(),
|
|
|
@@ -166,21 +186,24 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
if (errors.length > 0){
|
|
|
throw new Error("XML Parsing Error:" + (new XMLSerializer()).serializeToString(xmldom, "text/xml"));
|
|
|
}
|
|
|
- return true;
|
|
|
+ return xmldom;
|
|
|
} catch (ex) {
|
|
|
showErrorMsg('提示','XML格式有误:'+ex.message);
|
|
|
return false;
|
|
|
}
|
|
|
}else{
|
|
|
- return true;
|
|
|
+ return false;
|
|
|
}
|
|
|
},
|
|
|
exportXml:function(){
|
|
|
var me = this;
|
|
|
var builderPanel = Ext.getCmp('modelbuilderpanel');
|
|
|
var items = builderPanel.items.items;
|
|
|
+ var title = builderPanel.modelRecord.get('title') || '';
|
|
|
var content = me.getComponentXml(items,builderPanel);
|
|
|
- var xml = me.formatXml(content);
|
|
|
+
|
|
|
+ var xmlStr = '<model><title>'+title+'</title>'+content+'</model>';
|
|
|
+ var xml = me.formatXml(xmlStr);
|
|
|
Ext.create('Ext.window.Window',{
|
|
|
title:'导出',
|
|
|
width:500,
|
|
|
@@ -217,14 +240,11 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
closeAction:'hide',
|
|
|
items:[{
|
|
|
xtype:'form',
|
|
|
- layout:'column',
|
|
|
+ layout:'fit',
|
|
|
id:'tplSetForm',
|
|
|
- defaults:{
|
|
|
- margin:'5 5 5 5'
|
|
|
- },
|
|
|
items:[{
|
|
|
xtype:'textarea',
|
|
|
- fieldLabel:'标题',
|
|
|
+ grow: true,
|
|
|
columnWidth:1,
|
|
|
height:200,
|
|
|
name:'title',
|
|
|
@@ -241,8 +261,15 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
text:'确定',
|
|
|
handler:function(btn){
|
|
|
var form = Ext.getCmp('tplSetForm');
|
|
|
- var values = form.getForm().getValues();
|
|
|
- me.saveAsXml(values);
|
|
|
+ var title = form.getForm().getValues().title;
|
|
|
+ var titleParams = me.getParams(title);
|
|
|
+ if(!me.checkParams(titleParams, 'title')) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var modelbuilderpanel = Ext.getCmp('modelbuilderpanel');
|
|
|
+ modelbuilderpanel.modelRecord.set('title', title);
|
|
|
+ var win = Ext.getCmp('tplSet');
|
|
|
+ win.close();
|
|
|
}
|
|
|
},{
|
|
|
text:'取消',
|
|
|
@@ -255,9 +282,10 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
});
|
|
|
record.win = win;
|
|
|
}
|
|
|
+ win.down('form').getForm().getFields('title').items[0].setValue(record.get('title'));
|
|
|
win.show();
|
|
|
},
|
|
|
- saveAsXml:function(extraParams, callBackFunction){
|
|
|
+ saveAsXml:function(callBackFunction){
|
|
|
var me = this;
|
|
|
var builderPanel = Ext.getCmp('modelbuilderpanel');
|
|
|
var items = builderPanel.items.items;
|
|
|
@@ -266,13 +294,15 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
if(!me.checkParams(contentParams, 'content')) {
|
|
|
return;
|
|
|
}
|
|
|
- if(extraParams) {
|
|
|
- var titleParams = me.getParams(extraParams.title);
|
|
|
+ var title = builderPanel.modelRecord.get('title');
|
|
|
+ builderPanel.modelRecord.set('content', content);
|
|
|
+ if(title) {
|
|
|
+ var titleParams = me.getParams(title);
|
|
|
if(!me.checkParams(titleParams, 'title')) {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
- me.save(content,extraParams, callBackFunction);
|
|
|
+ me.save(callBackFunction);
|
|
|
},
|
|
|
getParams: function(content) {
|
|
|
var reg = /\$P{([^\}]{0,})\}/g
|
|
|
@@ -311,12 +341,15 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
content += '</content>';
|
|
|
return content;
|
|
|
},
|
|
|
- save:function(content,extraParams,callBackFunction){
|
|
|
+ save:function(callBackFunction){
|
|
|
var me = this;
|
|
|
var modelbuilderpanel = Ext.getCmp('modelbuilderpanel');
|
|
|
var record = modelbuilderpanel.modelRecord;
|
|
|
- var modelCode = record.get('code');
|
|
|
+ var modelCode = record.get('code'),
|
|
|
+ content = record.get('content'),
|
|
|
+ title = record.get('title');
|
|
|
var json = {
|
|
|
+ title: title,
|
|
|
content:content
|
|
|
};
|
|
|
if(modelCode){
|
|
|
@@ -325,9 +358,6 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
}else{
|
|
|
type = 'savePart';
|
|
|
}
|
|
|
- if(extraParams){
|
|
|
- Ext.apply(json,extraParams);
|
|
|
- }
|
|
|
me.el.mask('loading...');
|
|
|
Ext.Ajax.request({
|
|
|
url:'kanban/'+type,
|
|
|
@@ -363,6 +393,9 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
|
|
|
},
|
|
|
clear:function(){
|
|
|
var builderPanel = Ext.getCmp('modelbuilderpanel');
|
|
|
+ builderPanel.modelRecord.set('title', '');
|
|
|
+ builderPanel.modelRecord.set('content', '');
|
|
|
+
|
|
|
builderPanel.removeAll();
|
|
|
Ext.getCmp('elementdetailgrid').getStore().removeAll();
|
|
|
Ext.getCmp('detailpropertiesgrid').getStore().removeAll();
|