提交 e2326b46 编写于 作者: U unknown

内容管理中加入消息配置

上级 41d66e57
......@@ -22,9 +22,10 @@ MWF.xApplication.Selector.CMSFormField = new Class({
this.className = "CMSFormField";
},
getFields : function(){
debugger;
var dataTypes = {
"string": ["htmledit", "radio", "select", "textarea", "textfield"],
"person": ["personfield","org","orgfield"],
"person": ["personfield","org","orgfield","reader","author"],
"date": ["calender"],
"number": ["number"],
"array": ["checkbox"]
......
......@@ -2672,7 +2672,8 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
// html += "<tr><td class='formTitle'>"+this.app.lp.application.icon+"</td><td id='formApplicationIcon'></td></tr>";
html += "<tr><td class='formTitle'>"+this.app.lp.category.excelImportView +"</td><td class='formValue'><div id='formImportViewId' style='cursor:pointer;width:90%;min-height:22px;overflow:hidden;border:1px solid #ccc;border-radius: 3px;'></div></td></td></tr>"; //(this.category.data.documentType || "" )+
html += "<tr><td class='formTitle'>"+this.app.lp.category.sendNotify +"</td><td id='formCategorySendNotify' class='formValue'></td></tr>"; //"+this.category.data.categoryAlias+"
html += "<tr><td class='formTitle'>"+this.app.lp.category.blankToAllNotify +"</td><td id='formCategoryBlankToAllNotify' class='formValue'></td></tr>"; //"+this.category.data.categoryAlias+"
html += "<tr><td class='formTitle'></td><td style='color:#999;padding-left: 20px;font-size: 12px;'>"+this.app.lp.category.sendNotifyInfo+"</td></tr>";
// html += "<tr><td class='formTitle'>"+this.app.lp.category.blankToAllNotify +"</td><td id='formCategoryBlankToAllNotify' class='formValue'></td></tr>"; //"+this.category.data.categoryAlias+"
html += "</table>";
this.propertyContentNode.set("html", html);
this.propertyContentNode.getElements("td.formTitle").setStyles(this.app.css.propertyBaseContentTdTitle);
......@@ -2715,20 +2716,20 @@ MWF.xApplication.cms.ColumnManager.CategoryExplorer.CategoryProperty = new Class
});
this.sendNotify.load();
var blankToAllNotifyValue = o2.typeOf(this.category.data.blankToAllNotify) === "boolean" ? this.category.data.blankToAllNotify : true;
this.blankToAllNotify = new MDomItem( this.propertyContentNode.getElement("#formCategoryBlankToAllNotify"), {
type : "select",
style: this.app.css.processSelect,
value : blankToAllNotifyValue.toString(),
selectValue : lp.blankToAllNotifySelectValue,
selectText: lp.blankToAllNotifySelectText,
event : {
change : function( item ){
this.category.setBlankToAllNotify( item.getValue() !== "false" );
}.bind(this)
}
});
this.blankToAllNotify.load();
// var blankToAllNotifyValue = o2.typeOf(this.category.data.blankToAllNotify) === "boolean" ? this.category.data.blankToAllNotify : true;
// this.blankToAllNotify = new MDomItem( this.propertyContentNode.getElement("#formCategoryBlankToAllNotify"), {
// type : "select",
// style: this.app.css.processSelect,
// value : blankToAllNotifyValue.toString(),
// selectValue : lp.blankToAllNotifySelectValue,
// selectText: lp.blankToAllNotifySelectText,
// event : {
// change : function( item ){
// this.category.setBlankToAllNotify( item.getValue() !== "false" );
// }.bind(this)
// }
// });
// this.blankToAllNotify.load();
var value = this.category.data.importViewId ? [{
......
......@@ -62,6 +62,7 @@ MWF.xApplication.cms.ColumnManager.LP = {
"nameLabel": "Category Name",
"aliasLabel": "Category Alias",
"sendNotify": "Send Message",
"sendNotifyInfo": "The specific message policy is configured in the form",
"blankToAllNotify": "Notify all when the release range is empty",
"descriptionLabel": "Category description",
"sortLabel": "Queue Number",
......
......@@ -62,6 +62,7 @@ MWF.xApplication.cms.ColumnManager.LP = {
"nameLabel" : "分类名称",
"aliasLabel" : "分类别名",
"sendNotify" : "发布时是否发送消息",
"sendNotifyInfo": "具体消息策略在表单中配置",
"blankToAllNotify": "发布范围为空时是否全员通知",
"descriptionLabel" : "分类描述",
"sortLabel" : "分类排序",
......
......@@ -88,6 +88,52 @@
<div style="padding: 5px;color:#999;">{{$.lp.noEventInfo}}</div>
<div class="MWFEventsArea" name="events"></div>
</div>
<div title="{{$.lp.notice}}" class="MWFTab">
<div style="height:24px; padding-left: 10px; line-height: 24px; background-color: #fff; border-top: 1px solid #999;color:#999999;font-size: 12px;">{{$.lp.noticeInfo}}</div>
<table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
<tr>
<td class="editTableTitle">{{$.lp.noticeRange}}:</td>
<td class="editTableValue">
<input class="editTableRadio" onclick="if (this.checked){
$('text{$.pid}noticeByReaderArea').setStyle('display', '');
$('text{$.pid}noticeByCustomArea').setStyle('display', 'none');
}" name="noticeType" text{($.noticeType!=='custom')?'checked':''} type="radio" value="reader"/>{{$.lp.noticeByReader}} <br/>
<input class="editTableRadio" onclick="if (this.checked){
$('text{$.pid}noticeByReaderArea').setStyle('display', 'none');
$('text{$.pid}noticeByCustomArea').setStyle('display', '');
}" name="noticeType" text{($.noticeType==='custom')?'checked':''} type="radio" value="custom"/>{{$.lp.noticeByCustom}}
</td>
</tr>
</table>
<div id="text{$.pid}noticeByReaderArea" style="display: text{($.noticeType!=='custom')?'block':'none'}">
<table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
<tr>
<td class="editTableValue">
<input type="radio" name="blankToAllNotify" value="yes" text{($.blankToAllNotify !=='no')?'checked':''}/>{{$.lp.blankToAllNotify}} <br/>
<input type="radio" name="blankToAllNotify" value="no" text{($.blankToAllNotify ==='no')?'checked':''}/>{{$.lp.blankNotToAllNotify}}
</td>
</tr>
</table>
</div>
<div id="text{$.pid}noticeByCustomArea" style="display: text{($.noticeType==='custom')?'block':'none'}">
<table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
<tr>
<td class="editTableTitle">{{$.lp.specificValue}}:</td>
<td class="editTableValue">
<div class="MWFPersonMultiple" data-types="unit,group,identity" name="specificList"></div>
</td>
</tr>
<tr>
<td class="editTableTitle">{{$.lp.formField}}:</td>
<td class="editTableValue">
<div class="MWFCMSFormFieldPerson" name="formFieldList"></div>
</td>
</tr>
</table>
<div class="MWFScriptArea" title="{{$.lp.script}}" name="noticeScript"></div>
</div>
</div>
<div title="HTML" class="MWFTab">
<div class="MWFHTMLArea" style="font-family: Verdana, Geneva, sans-serif; font-size:14px"></div>
</div>
......
......@@ -4,7 +4,25 @@ MWF.xApplication.cms.FormDesigner.Property = MWF.CMSFCProperty = new Class({
"appType" : "cms"
},
Extends: MWF.FCProperty,
postShow: function(){
this.loadCMSFormFieldInput();
},
loadCMSFormFieldInput: function(){
var fieldNodes = this.propertyContent.getElements(".MWFCMSFormFieldPerson");
MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function(){
fieldNodes.each(function(node){
new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
"type": "CMSFormField",
"selectorOptions":{
"form": this.form.json.id,
"fieldType": "person",
},
"names": this.data[node.get("name")],
"onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
});
}.bind(this));
}.bind(this));
},
loadScriptEditor: function(scriptAreas, style){
scriptAreas.each(function(node){
var title = node.get("title");
......
......@@ -48,7 +48,17 @@ MWF.xApplication.cms.FormDesigner.LP = Object.merge( {}, MWF.xApplication.proces
"format": "格式",
"validationSave": "保存校验",
"validationPublish": "发布校验"
"validationPublish": "发布校验",
"notice" : "消息",
"noticeInfo": "注:消息发送的总开关在分类配置中设置。",
"noticeRange": "范围",
"noticeByReader": "根据读者(发布范围)",
"noticeByCustom": "自定义",
"blankToAllNotify": "读者(发布范围)为空时全员通知",
"blankNotToAllNotify": "读者(发布范围)为空时不通知",
"specificValue": "指定",
"formField": "表单字段"
},
"actionBar": {
"close":"关闭",
......
......@@ -125,6 +125,9 @@ MWF.xApplication.process.FormDesigner.Property = MWF.FCProperty = new Class({
this.loadSmartBISelect();
this.loadHelp();
if( this.postShow )this.postShow();
// this.loadScriptIncluder();
// this.loadDictionaryIncluder();
//this.testRestful();
......@@ -1571,6 +1574,7 @@ MWF.xApplication.process.FormDesigner.Property = MWF.FCProperty = new Class({
},
loadPersonInput: function(){
var personMultipleNodes = this.propertyContent.getElements(".MWFPersonMultiple");
var personIdentityNodes = this.propertyContent.getElements(".MWFPersonIdentity");
var personUnitNodes = this.propertyContent.getElements(".MWFPersonUnit");
var dutyNodes = this.propertyContent.getElements(".MWFDutySelector");
......@@ -1589,6 +1593,14 @@ MWF.xApplication.process.FormDesigner.Property = MWF.FCProperty = new Class({
MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function(){
personMultipleNodes.each(function(node){
new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
"types": node.get("data-types").split(","),
"names": this.data[node.get("name")],
"onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
});
}.bind(this));
personIdentityNodes.each(function(node){
new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
"type": "identity",
......
......@@ -10,8 +10,10 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
options: {
"style": "default",
"type": "identity",
"types": [],
"count": 0,
"names": []
"names": [],
"selectorOptions": null
},
initialize: function(node, app, options){
this.setOptions(options);
......@@ -45,7 +47,9 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
},
loadIdentitys: function(){
if (this.options.names){
if (this.options.type.toLowerCase()==="duty"){
if( this.options.types && this.options.types.length ){
this.loadOrgWidget( this.node );
}else if (this.options.type.toLowerCase()==="duty"){
var dutys = JSON.decode(this.options.names);
dutys.each(function(d){
var dutyItem = new MWF.widget.O2Duty(d, this.node, {
......@@ -89,6 +93,7 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
if (type==="application") this.identitys.push(new MWF.widget.O2Application(data, this.node));
if (type==="process") this.identitys.push(new MWF.widget.O2Process(data, this.node));
if (type==="formfield") this.identitys.push(new MWF.widget.O2FormField(data, this.node));
if (type==="cmsformfield") this.identitys.push(new MWF.widget.O2FormField(data, this.node));
if (type==="view") this.identitys.push(new MWF.widget.O2View(data, this.node));
if (type==="cmsview") this.identitys.push(new MWF.widget.O2CMSView(data, this.node));
if (type==="queryview") this.identitys.push(new MWF.widget.O2QueryView(data, this.node));
......@@ -113,6 +118,44 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
}
},
loadOrgWidget: function(node, items){
var disableInfor = false;
var names = items || this.options.names;
if( typeOf(names) === "string" ){
try{
names = JSON.parse( names );
}catch (e){
names = [names];
}
}
if (names && names.length){
names.each(function(name){
var data = (typeOf(name)==="string") ? {"name": name, "id": name}: name;
var distinguishedName = (typeOf(name)==="string") ? name : data.distinguishedName;
var flag = distinguishedName.split("@").getLast();
var widget;
switch (flag.toLowerCase()){
case "i":
widget = new MWF.widget.O2Identity(name, node, {"style": "xform","lazy":true,"disableInfor" : disableInfor});
break;
case "p":
widget = new MWF.widget.O2Person(name, node, {"style": "xform","lazy":true,"disableInfor" : disableInfor});
break;
case "u":
widget = new MWF.widget.O2Unit(name, node, {"style": "xform","lazy":true,"disableInfor" : disableInfor});
break;
case "g":
widget = new MWF.widget.O2Group(name, node, {"style": "xform","lazy":true,"disableInfor" : disableInfor});
break;
default:
widget = new MWF.widget.O2Other(name, node, {"style": "xform","lazy":true,"disableInfor" : disableInfor});
}
this.identitys.push(widget);
}.bind(this));
}
},
createAddNode: function(){
this.addNode = new Element("div", {"styles": this.css.addPersonNode}).inject(this.node, "before");
this.addNode.addEvent("click", function(e){
......@@ -134,8 +177,11 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
var selecteds = [];
this.identitys.each(function(id){selecteds.push(id.data)});
var types = ( this.options.types && this.options.types.length ) ? this.options.types : "";
var type = ( this.options.types && this.options.types.length ) ? "" : ((this.options.type.toLowerCase()==="dutyname") ? "duty" : this.options.type)
var options = {
"type": (this.options.type.toLowerCase()==="dutyname") ? "duty" : this.options.type,
"types": types,
"type": type,
"application": this.options.application,
"fieldType": this.options.fieldType,
"count": (this.options.type.toLowerCase()==="duty")? 1: this.options.count,
......@@ -151,37 +197,44 @@ MWF.xApplication.process.ProcessDesigner.widget.PersonSelector = new Class({
if (this.options.type.toLowerCase()!=="duty") this.node.empty();
var type = this.options.type.toLowerCase();
MWF.require("MWF.widget.O2Identity", function(){
items.each(function(item){
if (type==="identity") this.identitys.push(new MWF.widget.O2Identity(item.data, this.node));
if (type==="person") this.identitys.push(new MWF.widget.O2Person(item.data, this.node));
if (type==="unit") this.identitys.push(new MWF.widget.O2Unit(item.data, this.node));
if (type==="group") this.identitys.push(new MWF.widget.O2Group(item.data, this.node));
if (type==="application") this.identitys.push(new MWF.widget.O2Application(item.data, this.node));
if (type==="process") this.identitys.push(new MWF.widget.O2Process(item.data, this.node));
if (type==="cmsapplication") this.identitys.push(new MWF.widget.O2CMSApplication(item.data, this.node));
if (type==="cmscategory") this.identitys.push(new MWF.widget.O2CMSCategory(item.data, this.node));
if (type==="formfield") this.identitys.push(new MWF.widget.O2FormField(item.data, this.node));
if (type==="view") this.identitys.push(new MWF.widget.O2View(item.data, this.node));
if (type==="cmsview") this.identitys.push(new MWF.widget.O2CMSView(item.data, this.node));
if (type==="queryview") this.identitys.push(new MWF.widget.O2QueryView(item.data, this.node));
if (type==="querystatement") this.identitys.push(new MWF.widget.O2QueryStatement(item.data, this.node));
if (type==="querystat") this.identitys.push(new MWF.widget.O2QueryStat(item.data, this.node));
if (type==="querytable") this.identitys.push(new MWF.widget.O2QueryTable(item.data, this.node));
if (type==="queryimportmodel") this.identitys.push(new MWF.widget.O2QueryImportModel(item.data, this.node));
if (type==="dutyname") this.identitys.push(new MWF.widget.O2Duty(item.data, this.node));
if (type==="portalfile") this.identitys.push(new MWF.widget.O2File(item.data, this.node));
if (type==="processfile") this.identitys.push(new MWF.widget.O2File(item.data, this.node));
if (type==="dictionary") this.identitys.push(new MWF.widget.O2Dictionary(item.data, this.node));
if (type==="script") this.identitys.push(new MWF.widget.O2Script(item.data, this.node));
if (type==="formstyle") this.identitys.push(new MWF.widget.O2FormStyle(item.data, this.node));
}.bind(this));
if (type==="duty") {
if( types ){
this.loadOrgWidget( this.node, items.map(function (item) {
return item.data;
}));
}else{
items.each(function(item){
new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector.DutyInput(this, item.data, this.node, 20000);
if (type==="identity") this.identitys.push(new MWF.widget.O2Identity(item.data, this.node));
if (type==="person") this.identitys.push(new MWF.widget.O2Person(item.data, this.node));
if (type==="unit") this.identitys.push(new MWF.widget.O2Unit(item.data, this.node));
if (type==="group") this.identitys.push(new MWF.widget.O2Group(item.data, this.node));
if (type==="application") this.identitys.push(new MWF.widget.O2Application(item.data, this.node));
if (type==="process") this.identitys.push(new MWF.widget.O2Process(item.data, this.node));
if (type==="cmsapplication") this.identitys.push(new MWF.widget.O2CMSApplication(item.data, this.node));
if (type==="cmscategory") this.identitys.push(new MWF.widget.O2CMSCategory(item.data, this.node));
if (type==="formfield") this.identitys.push(new MWF.widget.O2FormField(item.data, this.node));
if (type==="cmsformfield") this.identitys.push(new MWF.widget.O2FormField(item.data, this.node));
if (type==="view") this.identitys.push(new MWF.widget.O2View(item.data, this.node));
if (type==="cmsview") this.identitys.push(new MWF.widget.O2CMSView(item.data, this.node));
if (type==="queryview") this.identitys.push(new MWF.widget.O2QueryView(item.data, this.node));
if (type==="querystatement") this.identitys.push(new MWF.widget.O2QueryStatement(item.data, this.node));
if (type==="querystat") this.identitys.push(new MWF.widget.O2QueryStat(item.data, this.node));
if (type==="querytable") this.identitys.push(new MWF.widget.O2QueryTable(item.data, this.node));
if (type==="queryimportmodel") this.identitys.push(new MWF.widget.O2QueryImportModel(item.data, this.node));
if (type==="dutyname") this.identitys.push(new MWF.widget.O2Duty(item.data, this.node));
if (type==="portalfile") this.identitys.push(new MWF.widget.O2File(item.data, this.node));
if (type==="processfile") this.identitys.push(new MWF.widget.O2File(item.data, this.node));
if (type==="dictionary") this.identitys.push(new MWF.widget.O2Dictionary(item.data, this.node));
if (type==="script") this.identitys.push(new MWF.widget.O2Script(item.data, this.node));
if (type==="formstyle") this.identitys.push(new MWF.widget.O2FormStyle(item.data, this.node));
}.bind(this));
if (type==="duty") {
items.each(function(item){
new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector.DutyInput(this, item.data, this.node, 20000);
}.bind(this));
}
}
this.fireEvent("change", [this.identitys]);
}.bind(this));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册