提交 60e94fda 编写于 作者: U unknown

内容管理分类增加数据映射配置

上级 06e1e25b
......@@ -2415,6 +2415,7 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
this.contentNode = new Element("div", {
"styles": this.app.css.propertyContentNode
}).inject(this.node);
this.contentNode.setStyle("overflow","auto");
this.contentAreaNode = new Element("div", {
"styles": this.app.css.propertyContentAreaNode
}).inject(this.contentNode);
......@@ -2422,9 +2423,9 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
this.setContentHeight();
this.setContentHeightFun = this.setContentHeight.bind(this);
this.app.addEvent("resize", this.setContentHeightFun);
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(this.contentNode, {"indent": false});
}.bind(this));
// MWF.require("MWF.widget.ScrollBar", function(){
// new MWF.widget.ScrollBar(this.contentNode, {"indent": false});
// }.bind(this));
},
reload: function( category ){
if(category)this.category = category;
......@@ -2488,6 +2489,8 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
);
this.viewerSetting.category = this.category;
this.viewerSetting.load();
this.createProjectionContentNode();
},
saveProcessApp : function( appId, appName ){
......@@ -2645,7 +2648,7 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
createPropertyContentNode: function(){
this.propertyContentNode = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.contentAreaNode);
this.propertyContentNode = new Element("div", {"styles": {"overflow": "hidden", "max-width":"900px"}}).inject(this.contentAreaNode);
var html = "<table cellspacing='0' cellpadding='0' border='0' width='95%' align='center'>";
html += "<tr><td class='formTitle'>"+this.app.lp.category.idLabel +"</td><td id='formCategoryId' class='formValue'>"+this.category.data.id+"</td></tr>";
......@@ -2670,6 +2673,7 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
var lp = this.app.lp;
this.typeSelect = new MDomItem( this.propertyContentNode.getElement("#formCategoryType"), {
type : "select",
style: this.app.css.processSelect,
value : this.category.data.documentType || lp.documentTypeSelectValue[0],
selectValue : lp.documentTypeSelectValue,
selectText: lp.documentTypeSelectText,
......@@ -2684,6 +2688,7 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
var sendNotifyValue = o2.typeOf(this.category.data.sendNotify) === "boolean" ? this.category.data.sendNotify : true;
this.sendNotify = new MDomItem( this.propertyContentNode.getElement("#formCategorySendNotify"), {
type : "select",
style: this.app.css.processSelect,
value : sendNotifyValue.toString(),
selectValue : lp.sendNotifySelectValue,
selectText: lp.sendNotifySelectText,
......@@ -2735,6 +2740,20 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
//this.sortInput = new MWF.xApplication.cms.ColumnManager.Input(this.propertyContentNode.getElement("#formApplicationSort"), this.data.appInfoSeq, this.app.css.formInput);
//this.typeInput = new MWF.xApplication.cms.ColumnManager.Input(this.propertyContentNode.getElement("#formApplicationType"), this.data.applicationCategory, this.app.css.formInput);
},
createProjectionContentNode: function(){
this.projectionContentNode = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.contentAreaNode);
this.projectionContentNode.set("html", "<div></div><div></div>");
MWF.xDesktop.requireApp("cms.ColumnManager", "widget.ProjectionEditor", function(){
var projection = new MWF.xApplication.cms.ColumnManager.widget.ProjectionEditor(this.projectionContentNode, this.category.data.projection, {
"onChange": function(){
alert(JSON.encode(projection.getData()));
}.bind(this),
"category": this.category.data.id
});
projection.load();
}.bind(this));
}
});
......
......@@ -286,5 +286,28 @@ MWF.xApplication.cms.ColumnManager.LP = {
"checkDraftSelectText": ["New interface check draft","New interface does not check draft"],
"showAllDocumentSelectText": ["Show all document views","Hide all document views"],
"selectRelateFormNotice": "Please select the related form of the view to be pasted"
"selectRelateFormNotice": "Please select the related form of the view to be pasted",
"projectionTitle": "Mapping business data",
"projectionActionNode_add": "Add mapping entry",
"projectionActionNode_modify": "Modify the mapping entry",
"projectionDataName": "Name",
"projectionPath": "Path",
"projectionType":"Type",
"projectionInputError": "Please enter the data name and data path",
"projectionTypeCountError": "{type} type data mapping entries, up to {count} allowed.",
"projectionSameNameError": "Same data name already exists",
"projectionDeleteItemTitle": "Delete mapping confirmation",
"projectionDeleteItem": "Are you sure you want to delete the data mapping entry named \"{name}\" and path \"{path}\"?",
"projectionRunActionNode": "Run data mapping immediately",
"projectionRunTitle": "Execute confirmation immediately",
"projectionRunText": "Execute mapping confirmation",
"projectionRunSuccess": "Data mapping has been executed",
"projectionRunError": "No need to perform data mapping",
"mapping": "Mapping",
"mappingData": "Mapping Data",
"dataName": "Name",
"dataPath": "Path",
"dataType": "Type"
};
\ No newline at end of file
......@@ -286,5 +286,28 @@ MWF.xApplication.cms.ColumnManager.LP = {
"checkDraftSelectText": ["新建界面检查草稿","新建界面不检查草稿"],
"showAllDocumentSelectText": ["显示所有文档视图","隐藏所有文档视图"],
"selectRelateFormNotice": "请选择需粘贴视图的关联表单"
"selectRelateFormNotice": "请选择需粘贴视图的关联表单",
"projectionTitle": "映射业务数据",
"projectionActionNode_add": "添加映射条目",
"projectionActionNode_modify": "修改映射条目",
"projectionDataName": "数据名称",
"projectionPath": "数据路径",
"projectionType":"数据类型",
"projectionInputError": "请输入数据名称和数据路径",
"projectionTypeCountError": "{type}类型的数据映射条目,最多允许{count}条。",
"projectionSameNameError": "相同的数据名称已存在",
"projectionDeleteItemTitle": "删除数据映射条目确认",
"projectionDeleteItem": "您确定要删除名为“{name}”,路径为“{path}”的数据映射条目吗?",
"projectionRunActionNode": "立即运行数据映射",
"projectionRunTitle": "立即执行确认",
"projectionRunText": "请确认立即执行数据映射",
"projectionRunSuccess": "数据映射已开始执行",
"projectionRunError": "不需要执行数据映射",
"mapping": "映射",
"mappingData": "映射业务数据",
"dataName": "数据名称",
"dataPath": "数据路径",
"dataType": "数据类型"
};
\ No newline at end of file
{
"titleNode": {
"overflow": "hidden",
"margin": "20px 0px 10px 0px",
"height": "40px",
"color": "#888",
"font-size": "16px",
"line-height": "40px",
"clear": "both",
"border-bottom": "1px solid #ccc"
},
"projectionTable": {
"width": "100%",
"border-top": "1px solid #cccccc",
"border-left": "1px solid #cccccc"
},
"projectionTableTitle": {
"border-right": "1px solid #cccccc",
"border-bottom": "1px solid #cccccc",
"height": "24px",
"line-height": "24px",
"background-color": "#fff",
"color": "#da7429",
"font-weight": "normal",
"font-size": "14px"
},
"projectionTableTd": {
"border-right": "1px solid #cccccc",
"border-bottom": "1px solid #cccccc",
"height": "24px",
"cursor": "pointer",
"line-height": "24px"
},
"actionNode": {
"width": "80%",
"margin": "10px auto",
"background-color": "#FFF",
"padding": "4px 14px",
"border": "1px solid #ccc",
"border-radius": "3px",
"font-size": "12px",
"color": "#888",
"cursor": "pointer",
"text-align": "center"
},
"projectionItemInput": {
"border": "0px",
"height": "20px",
"width": "98%",
"line-height": "20px"
},
"projectionItemSelect": {
"height": "20px",
"border": "0px",
"line-height": "20px"
},
"projectionItemAction": {
"height": "24px",
"width": "24px",
"cursor": "pointer",
"background": "url("+"../x_component_process_ProcessDesigner/widget/$ProjectionEditor/default/del.png) no-repeat center center"
},
"projectionTableTr": {
"background-color": "#ffffff"
},
"projectionTableTr_selected": {
"background-color": "#e4eef9"
},
"selectNode": {
"margin": "0px",
"padding": "5px",
"background-color": "#F6F6F6",
"overflow": "hidden"
},
"downNode": {
"height": "24px",
"background": "url("+"../x_component_process_ProcessDesigner/widget/$SerialEditor/default/down.png) no-repeat center center"
},
"itemNode": {
"height": "18px",
"line-height": "18px",
"padding": "2px 5px",
"margin": "2px",
"background": "#F6F6F6",
"float": "left",
"border": "1px solid #CCC",
"cursor": "pointer",
"color": "#333"
},
"itemNode_over": {
"background": "#616161",
"color": "#FFF"
},
"itemIconNode": {
"float": "right",
"width": "16px",
"height": "18px",
"background": "url("+"../x_component_process_ProcessDesigner/widget/$SerialEditor/default/flag.png) no-repeat center right"
},
"itemIconNode_over": {
"background": "url("+"../x_component_process_ProcessDesigner/widget/$SerialEditor/default/flag_over.png) no-repeat center right"
},
"itemTextNode": {
"margin-right": "16px"
},
"showNode": {
"overflow": "hidden",
"padding": "5px 5px",
"min-height": "24px",
"background-color": "#F6F6F6",
"border-top": "0px solid #999"
},
"previewNode": {
"min-height": "20px",
"line-height": "20px",
"background-color": "#F6F6F6",
"overflow": "hidden"
},
"propertyNode":{
"margin": "0px 0px 10px 0px",
"padding": "5px",
"background": "#F6F6F6",
"overflow": "hidden",
"border-top": "1px solid #CCC",
"border-bottom": "1px solid #CCC"
},
"selectedItemNode": {
"height": "20px",
"line-height": "20px",
"margin": "2px",
"background": "#FFF",
"float": "left",
"border": "1px solid #999",
"border-radius": "6px",
"cursor": "pointer",
"color": "#333",
"box-shadow": "1px 1px 3px #666"
},
"selectedItemTextNode": {
"float": "left",
"height": "20px",
"padding": "0px 2px 0px 5px",
},
"selectedItemCloseNode": {
"float": "right",
"height": "20px",
"width": "14px",
"background": "url("+"../x_component_process_ProcessDesigner/widget/$SerialEditor/default/delete.png) no-repeat center center"
},
"selectedItemNode_over": {
"background": "#F1F1F1",
"box-shadow": "1px 1px 2px #999"
},
"selectedItemNode_check": {
"background": "#e1e9ff",
"box-shadow": "0px 0px 3px #999 inset"
},
"itemPropertyNode": {
"overflow": "hidden",
"dispaly": "none"
},
"propertyTitleNode": {
"width": "70px",
"font-weight": "bold",
"font-size": "12px",
"min-height": "24px",
"line-height": "24px",
"margin-left": "5px",
"float": "left"
},
"propertyInputDivNode": {
"margin-left": "75px",
"min-height": "24px",
"line-height": "24px",
"border-bottom": "1px dashed #CCC"
},
"propertyInputNode": {
"width": "97%",
"border-top": "1px solid #DDD",
"border-left": "1px solid #DDD",
"border-bottom": "1px solid #EEE",
"border-right": "1px solid #EEE"
},
"scriptNode": {
"height": "200px"
},
"lineNode": {
"overflow": "hidden",
"border-bottom": "1px dashed #CCC",
}
}
\ No newline at end of file
MWF.xApplication.cms.ColumnManager.widget = MWF.xApplication.cms.ColumnManager.widget || {};
MWF.xDesktop.requireApp("cms.ColumnManager", "lp."+o2.language,null,false);
MWF.xApplication.cms.ColumnManager.widget.ProjectionEditor = new Class({
Implements: [Options, Events],
Extends: MWF.widget.Common,
options: {
"style": "default",
"maxTypeCount": {
"string": 4,
"long": 2,
"dateTime": 5
}
},
initialize: function(node, text, options){
this.setOptions(options);
this.node = $(node);
this.data = (text) ? JSON.decode(text) : [];
this.name = node.get("name");
this.path = "../x_component_cms_ColumnManager/widget/$ProjectionEditor/";
this.cssPath = "../x_component_cms_ColumnManager/widget/$ProjectionEditor/"+this.options.style+"/css.wcss";
this._loadCss();
this.selectedItems = [];
this.items = {};
},
getData: function(){
return this.data;
},
load: function(){
this.node.set("html", this.getHtml());
this.node.setStyles({
"margin": "0px 40px"
});
this.titleNode = this.node.getFirst("div").setStyles(this.css.titleNode).set("text", MWF.xApplication.cms.ColumnManager.LP.projectionTitle);
// this.titleNode = new Element("div", {"styles": this.css.titleNode}).inject(this.node);
// this.titleNode.set("text", MWF.xApplication.cms.ColumnManager.LP.projectionTitle);
this.contentNode = this.titleNode.getNext();
this.tableArea = this.contentNode.getLast("div");
this.actionNode = this.tableArea.getPrevious().setStyles(this.css.actionNode).set("text", ""+MWF.xApplication.cms.ColumnManager.LP.projectionActionNode_add);
var inputs = this.node.getElements("input");
this.nameInput = inputs[0];
this.pathInput = inputs[1];
this.typeSelect = this.node.getElement("select");
// this.tableArea = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.node);
var html = "<table cellspacing='0' cellpadding='3px' width='100%' border='0'><tr>" +
"<th>"+MWF.xApplication.cms.ColumnManager.LP.projectionDataName+"</th>" +
"<th>"+MWF.xApplication.cms.ColumnManager.LP.projectionPath+"</th>" +
"<th>"+MWF.xApplication.cms.ColumnManager.LP.projectionType+"</th>" +
"<th></th>" +
"</tr></table>";
this.tableArea.set("html", html);
this.table = this.tableArea.getElement("table").setStyles(this.css.projectionTable);
this.tableArea.getElements("th").setStyles(this.css.projectionTableTitle);
this.loadProjectionList();
this.actionNode.addEvent("click", this.changeProjectionItem.bind(this));
// this.runAction = new Element("div", {"styles": this.css.actionNode, "text": MWF.xApplication.cms.ColumnManager.LP.projectionRunActionNode}).inject(this.node);
// this.runAction.addEvent("click", function(e){
// var _self = this;
// MWF.xDesktop.confirm("infor", e, MWF.xApplication.cms.ColumnManager.LP.projectionRunTitle, MWF.xApplication.cms.ColumnManager.LP.projectionRunText, 300, 120, function(){
// _self.runProjection();
// this.close();
// }, function(){
// this.close();
// }, null, null, "o2");
//
// }.bind(this));
},
getHtml: function(){
var html =
'<div>'+MWF.xApplication.cms.ColumnManager.LP.mappingData+'</div>'+
'<div style="max-width: 800px;margin-bottom: 40px;">'+
' <table width="100%" border="0" cellpadding="2" cellspacing="0" class="editTable">'+
' <tr>'+
' <td class="editTableTitle">'+MWF.xApplication.cms.ColumnManager.LP.dataName+':</td>'+
' <td class="editTableValue"><input type="text" value="" class="editTableInput" style="width:90%;"/></td>'+
// ' </tr>'+
// ' <tr>'+
' <td class="editTableTitle">'+MWF.xApplication.cms.ColumnManager.LP.dataPath+':</td>'+
' <td class="editTableValue"><input type="text" value="" class="editTableInput" style="width:90%;"/></td>'+
// '</tr>'+
// '<tr>'+
' <td class="editTableTitle">'+MWF.xApplication.cms.ColumnManager.LP.dataType+':</td>'+
' <td class="editTableValue"><select>'+
' <option value="string">string</option>'+
' <option value="long">long</option>'+
' <option value="datetime">dateTime</option>'+
' </select></td>'+
' </tr>'+
' </table>'+
' <div></div>'+
' <div></div>'+
'<div>';
return html;
},
runProjection: function(){
o2.Actions.load("x_cms_assemble_control").CategoryInfoAction.executeProjection(this.options.category, null, function(json){
if (json.data.value){
o2.xDesktop.notice("success", {x: "right", y:"top"}, MWF.xApplication.cms.ColumnManager.LP.projectionRunSuccess, this.node);
}else{
o2.xDesktop.notice("error", {x: "right", y:"top"}, MWF.xApplication.cms.ColumnManager.LP.projectionRunError, this.node);
}
});
},
changeProjectionItem: function(){
if (this.currentItem) {
this.modifyProjectionItem();
}else{
this.addProjectionItem();
}
},
checkItemData: function(name, path, type){
if (!name || !path){
o2.xDesktop.notice("error", {x: "right", y:"top"}, MWF.xApplication.cms.ColumnManager.LP.projectionInputError, this.node);
return false;
}
var count = 0;
for (var i=0; i<this.data.length; i++){
if (this.data[i].type===type) count++;
if (count>=this.options.maxTypeCount[type]){
var txt = MWF.xApplication.cms.ColumnManager.LP.projectionTypeCountError;
txt = txt.replace(/{type}/g, type);
txt = txt.replace(/{count}/g, this.options.maxTypeCount[type]);
o2.xDesktop.notice("error", {x: "right", y:"top"}, txt, this.node);
return false;
}
if (this.data[i].name===name && (!this.currentItem || this.data[i]!=this.currentItem.data)) {
o2.xDesktop.notice("error", {x: "right", y:"top"}, MWF.xApplication.cms.ColumnManager.LP.projectionSameNameError, this.node);
return false;
}
}
return true;
},
modifyProjectionItem: function(){
var name = this.nameInput.get("value");
var path = this.pathInput.get("value");
var type = this.typeSelect.options[this.typeSelect.selectedIndex].value;
if (this.checkItemData(name, path, type)){
this.currentItem.data.name = name;
this.currentItem.data.path = path;
this.currentItem.data.type = type;
this.currentItem.refresh();
this.currentItem.unSelected();
this.fireEvent("change");
this.fireEvent("modifyItem");
}
},
addProjectionItem: function(){
var name = this.nameInput.get("value");
var path = this.pathInput.get("value");
var type = this.typeSelect.options[this.typeSelect.selectedIndex].value;
if (this.checkItemData(name, path, type)){
var o = { "name": name, "path": path, "type": type };
this.data.push(o);
new MWF.xApplication.cms.ColumnManager.widget.ProjectionEditor.Item(o, this);
this.fireEvent("change");
this.fireEvent("addItem");
}
},
loadProjectionList: function(){
this.data.each(function(d){
new MWF.xApplication.cms.ColumnManager.widget.ProjectionEditor.Item(d, this);
}.bind(this));
}
});
MWF.xApplication.cms.ColumnManager.widget.ProjectionEditor.Item = new Class({
initialize: function(data, editor){
this.editor = editor;
this.data = data;
this.table = this.editor.table;
this.css = this.editor.css;
this.load();
},
load: function(){
this.tr = new Element('tr').inject(this.table);
var td = this.tr.insertCell().setStyles(this.css.projectionTableTd).set("text", this.data.name);
td = this.tr.insertCell().setStyles(this.css.projectionTableTd).set("text", this.data.path);
td = this.tr.insertCell().setStyles(this.css.projectionTableTd).set("text", this.data.type);
td = this.tr.insertCell().setStyles(this.css.projectionTableTd);
this.delAction = new Element("div", {"styles": this.css.projectionItemAction}).inject(td);
this.setEvent();
},
setEvent: function(){
this.delAction.addEvent("click", function(e){
var txt = MWF.xApplication.cms.ColumnManager.LP.projectionDeleteItem;
txt = txt.replace(/{name}/g, this.data.name);
txt = txt.replace(/{path}/g, this.data.path);
var _self = this;
MWF.xDesktop.confirm("infor", e, MWF.xApplication.cms.ColumnManager.LP.projectionDeleteItemTitle, txt, 300, 120, function(){
_self.destroy();
this.close();
}, function(){
this.close();
}, null, null, "o2");
}.bind(this));
this.tr.addEvents({
"click": function(){
if (this.editor.currentItem) this.editor.currentItem.unSelected();
this.selected();
}.bind(this)
})
},
selected: function(){
this.editor.currentItem = this;
this.tr.setStyles(this.css.projectionTableTr_selected);
this.editor.nameInput.set("value", this.data.name);
this.editor.pathInput.set("value", this.data.path);
var ops = this.editor.typeSelect.options;
for (var i=0; i<ops.length; i++){
if (ops[i].value===this.data.type){
ops[i].set("selected", true);
break;
}
}
this.editor.actionNode.set("text", ""+MWF.xApplication.cms.ColumnManager.LP.projectionActionNode_modify);
},
unSelected: function(){
this.editor.currentItem = null;
this.tr.setStyles(this.css.projectionTableTr);
this.editor.actionNode.set("text", ""+MWF.xApplication.cms.ColumnManager.LP.projectionActionNode_add);
},
refresh: function(){
var tds = this.tr.getElements("td");
tds[0].set("text", this.data.name);
tds[1].set("text", this.data.path);
tds[2].set("text", this.data.type);
},
destroy: function(){
this.tr.destroy();
this.editor.data.erase(this.data);
this.editor.fireEvent("change");
this.editor.fireEvent("deleteItem");
o2.release(this);
}
});
......@@ -524,7 +524,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
// var excelName = this.statementJson.name + "(" + start + "-" + end + ").xlsx";
var excelName = this.statementJson.name + ".xlsx";
var excelName = this.statementJson.name;
var p = this.currentPage;
var d = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册