提交 3b892e2b 编写于 作者: NoSubject's avatar NoSubject

Merge remote-tracking branch 'origin/master'

......@@ -37,6 +37,7 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.entity.annotation.RestrictFlag;
import com.x.base.core.entity.tools.JpaObjectTools;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.exception.ExceptionWhen;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.tools.ListTools;
......@@ -156,10 +157,13 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
private void checkIdFormat(JpaObject jpa) throws Exception {
String value = jpa.getId();
if (null == value || (!StringTools.UUID_REGEX.matcher(value).matches())) {
throw new Exception("check id error, class:" + jpa.getClass().getName() + ", field:id, value:" + value
+ ", invalid format.");
if (StringUtils.isNotBlank(value) && ((StringUtils.isNotBlank(Config.general().getIdFormatCheckRegular())
&& value.matches(Config.general().getIdFormatCheckRegular()))
|| StringTools.UUID_REGEX.matcher(value).matches())) {
return;
}
throw new IllegalStateException("check id error, class:" + jpa.getClass().getName() + ", field:id, value:"
+ value + ", invalid format.");
}
@SuppressWarnings("unchecked")
......
......@@ -35,6 +35,8 @@ public class General extends ConfigObject {
private static final String DEFAULT_REFERERHEADCHECKREGULAR = "";
private static final String DEFAULT_ACCESSCONTROLALLOWORIGIN = "";
private static final String DEFAULT_IDFORMATCHECKREGULAR = "";
public static General defaultInstance() {
General o = new General();
o.webSocketEnable = DEFAULT_WEBSOCKETENABLE;
......@@ -50,6 +52,7 @@ public class General extends ConfigObject {
o.exposeJest = DEFAULT_EXPOSEJEST;
o.refererHeadCheckRegular = DEFAULT_REFERERHEADCHECKREGULAR;
o.accessControlAllowOrigin = DEFAULT_ACCESSCONTROLALLOWORIGIN;
o.idFormatCheckRegular = DEFAULT_IDFORMATCHECKREGULAR;
o.attachmentConfig = new AttachmentConfig();
return o;
}
......@@ -96,6 +99,13 @@ public class General extends ConfigObject {
@FieldDescribe("附件上传限制大小或者类型.")
private AttachmentConfig attachmentConfig;
@FieldDescribe("对象id格式校验正则表达式.")
private String idFormatCheckRegular = "";
public String getIdFormatCheckRegular() {
return this.idFormatCheckRegular;
}
public String getRefererHeadCheckRegular() {
return (StringUtils.isBlank(refererHeadCheckRegular) ? DEFAULT_REFERERHEADCHECKREGULAR
: this.refererHeadCheckRegular);
......
......@@ -289,6 +289,7 @@ public class Message extends GsonPropertyObject {
o.host = DEFAULT_HOST;
o.port = DEFAULT_PORT;
o.sslEnable = DEFAULT_SSLENABLE;
o.startTlsEnable = DEFAULT_STARTTLSENABLE;
o.auth = DEFAULT_AUTH;
o.from = DEFAULT_FROM;
o.password = DEFAULT_PASSWORD;
......@@ -304,6 +305,7 @@ public class Message extends GsonPropertyObject {
private static final String DEFAULT_HOST = "";
private static final Integer DEFAULT_PORT = 465;
private static final Boolean DEFAULT_SSLENABLE = true;
private static final Boolean DEFAULT_STARTTLSENABLE = false;
private static final Boolean DEFAULT_AUTH = true;
private static final String DEFAULT_FROM = "admin@o2oa.net";
private static final String DEFAULT_PASSWORD = "password";
......@@ -317,6 +319,9 @@ public class Message extends GsonPropertyObject {
@FieldDescribe("smtp 使用ssl加密.")
private Boolean sslEnable;
@FieldDescribe("smtp 启用升级到加密链接.")
private Boolean startTlsEnable;
@FieldDescribe("stmp启用认证.")
private Boolean auth;
......@@ -338,6 +343,10 @@ public class Message extends GsonPropertyObject {
return null == sslEnable ? DEFAULT_SSLENABLE : this.sslEnable;
}
public Boolean getStartTlsEnable() {
return null == startTlsEnable ? DEFAULT_STARTTLSENABLE : this.startTlsEnable;
}
public Boolean getAuth() {
return null == auth ? DEFAULT_AUTH : this.auth;
}
......
......@@ -42,13 +42,13 @@ public class Query extends ConfigObject {
private CrawlCms crawlCms;
@FieldDescribe("抽取office中的文本.")
private Boolean extractOffice = true;
private Boolean extractOffice = false;
@FieldDescribe("抽取pdf中的文本.")
private Boolean extractPdf = true;
private Boolean extractPdf = false;
@FieldDescribe("抽取文本中的文本.")
private Boolean extractText = true;
private Boolean extractText = false;
@FieldDescribe("抽取图像中的文本.")
private Boolean extractImage = false;
......@@ -59,9 +59,9 @@ public class Query extends ConfigObject {
@FieldDescribe("查询批次大小.")
private Integer planQueryBatchSize = DEFAULT_PLANQUERYBATCHSIZE;
public static final Boolean DEFAULT_EXTRACTOFFICE = true;
public static final Boolean DEFAULT_EXTRACTPDF = true;
public static final Boolean DEFAULT_EXTRACTTEXT = true;
public static final Boolean DEFAULT_EXTRACTOFFICE = false;
public static final Boolean DEFAULT_EXTRACTPDF = false;
public static final Boolean DEFAULT_EXTRACTTEXT = false;
public static final Boolean DEFAULT_EXTRACTIMAGE = false;
public static final String DEFAULT_TESSLANGUAGE = "chi_sim";
public static final Integer DEFAULT_PLANQUERYBATCHSIZE = 500;
......@@ -115,7 +115,7 @@ public class Query extends ConfigObject {
return o;
}
public final static Boolean DEFAULT_ENABLE = true;
public final static Boolean DEFAULT_ENABLE = false;
public final static String DEFAULT_CRON = "30 30 9,12,15,18 * * ?";
......@@ -389,4 +389,4 @@ public class Query extends ConfigObject {
public void setTessLanguage(String tessLanguage) {
this.tessLanguage = tessLanguage;
}
}
\ No newline at end of file
}
......@@ -97,6 +97,7 @@ public class MailConsumeQueue extends AbstractQueue<Message> {
properties.put("mail.smtp.host", consumer.getHost());
properties.put("mail.smtp.port", consumer.getPort());
properties.put("mail.smtp.ssl.enable", consumer.getSslEnable());
properties.put("mail.smtp.starttls.enable", consumer.getStartTlsEnable());
properties.put("mail.smtp.auth", consumer.getAuth());
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
@Override
......
......@@ -5,6 +5,7 @@ import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import com.x.processplatform.core.entity.content.*;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -23,15 +24,6 @@ import com.x.base.core.project.jaxrs.WoId;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.processplatform.core.entity.content.Attachment;
import com.x.processplatform.core.entity.content.Read;
import com.x.processplatform.core.entity.content.ReadCompleted;
import com.x.processplatform.core.entity.content.Review;
import com.x.processplatform.core.entity.content.TaskCompleted;
import com.x.processplatform.core.entity.content.Work;
import com.x.processplatform.core.entity.content.WorkCompleted;
import com.x.processplatform.core.entity.content.WorkLog;
import com.x.processplatform.core.entity.content.WorkStatus;
import com.x.processplatform.core.entity.element.Application;
import com.x.processplatform.core.entity.element.Process;
import com.x.processplatform.core.entity.element.util.WorkLogTree;
......@@ -116,6 +108,7 @@ class ActionRollback extends BaseAction {
emc.beginTransaction(Read.class);
emc.beginTransaction(ReadCompleted.class);
emc.beginTransaction(Review.class);
emc.beginTransaction(Record.class);
Work work = createWork(business, workCompleted, workLog);
emc.persist(work, CheckPersistType.all);
......@@ -134,6 +127,9 @@ class ActionRollback extends BaseAction {
rollbackReview(business, work, nodes,
emc.listEqual(Review.class, Review.job_FIELDNAME, work.getJob()));
rollbackRecord(business, work, nodes, workLog,
emc.listEqual(Record.class, Record.job_FIELDNAME, work.getJob()));
rollbackWorkLog(business, work, nodes, workLogs);
rollbackAttachment(business, work,
......@@ -258,6 +254,20 @@ class ActionRollback extends BaseAction {
}
}
private void rollbackRecord(Business business, Work work, Nodes nodes, WorkLog workLog,
List<Record> list) throws Exception {
for (Record o : list) {
if (!nodes.containsWorkLogWithActivityToken(o.getFromActivityToken())
|| StringUtils.equals(o.getFromActivityToken(), workLog.getFromActivityToken())) {
business.entityManagerContainer().remove(o);
} else {
o.setCompleted(false);
o.setWorkCompleted("");
o.setWork(work.getId());
}
}
}
private void rollbackWorkLog(Business business, Work work, Nodes nodes, List<WorkLog> list) throws Exception {
for (WorkLog o : list) {
if (!nodes.containsWorkLog(o)) {
......
......@@ -361,10 +361,10 @@ public abstract class Plan extends GsonPropertyObject {
}
public List<String> fetchBundles() throws Exception {
// 先获取所有记录对应的job值作为返回的结果集
List<String> bundles = this.listBundle();
// 先进行字段调整
this.adjust();
// 先获取所有记录对应的job值作为返回的结果集
List<String> bundles = this.listBundle();
this.group = this.findGroupSelectEntry();
this.orderList = this.listOrderSelectEntry();
if ((null != this.runtime.count) && (this.runtime.count > 0) && (this.runtime.count < bundles.size())) {
......
......@@ -274,12 +274,36 @@ MWF.xApplication.cms.FormDesigner.Module.Actionbar = MWF.CMSFCActionbar = new Cl
}
}.bind(this));
},
getImagePath: function(img, iscustom){
if( iscustom ){
var style;
if( this.json.customIconStyle ){
style = this.json.customIconStyle;
}else{
style = (this.json.style || "default").indexOf("red") > -1 ? "red" : "blue";
}
return this.path+""+this.options.style +"/custom/"+ style +"/"+ img;
}else{
return this.path+""+this.options.style +"/tools/"+ (this.json.style || "default") +"/"+img;
}
},
getImageOverPath: function(img_over, img, iscustom){
if( iscustom ){
var style_over = this.json.customIconOverStyle || "white";
return this.path+""+this.options.style+"/custom/"+ style_over +"/"+img;
}else{
return this.path+""+this.options.style+"/tools/"+ (this.json.style || "default") +"/"+ img_over;
}
},
setToolbars: function(tools, node){
tools.each(function(tool){
var actionNode = new Element("div", {
"MWFnodetype": tool.type,
"MWFButtonImage": this.path+""+this.options.style +"/tools/"+ (this.json.style || "default") +"/"+tool.img,
"MWFButtonImageOver": this.path+""+this.options.style+"/tools/"+ (this.json.style || "default") +"/"+tool.img_over,
//"MWFButtonImage": this.path+""+this.options.style +"/tools/"+ (this.json.style || "default") +"/"+tool.img,
//"MWFButtonImageOver": this.path+""+this.options.style+"/tools/"+ (this.json.style || "default") +"/"+tool.img_over,
"MWFButtonImage": this.getImagePath(tool.img, tool.customImg),
"MWFButtonImageOver": this.getImageOverPath(tool.img_over, tool.img, tool.customImg),
"title": tool.title,
"MWFButtonAction": tool.action,
"MWFButtonText": tool.text
......
......@@ -244,6 +244,7 @@ MWF.xApplication.cms.FormDesigner.widget.ActionsEditor.ButtonAction = new Class(
var item = this.iconMenu.addMenuItem("", "click", function(ev){
var src = this.item.getElement("img").get("src");
_self.data.img = src.substr(src.lastIndexOf("/")+1, src.length);
_self.data.customImg = true;
_self.iconNode.setStyle("background-image", "url("+src+")");
_self.editor.fireEvent("change");
ev.stopPropagation();
......@@ -256,6 +257,7 @@ MWF.xApplication.cms.FormDesigner.widget.ActionsEditor.ButtonAction = new Class(
var item = this.iconMenu.addMenuItem("", "click", function(ev){
var src = this.item.getElement("img").get("src");
_self.data.img = src.substr(src.lastIndexOf("/")+1, src.length);
_self.data.customImg = true;
_self.iconNode.setStyle("background-image", "url("+src+")");
_self.editor.fireEvent("change");
ev.stopPropagation();
......
......@@ -135,6 +135,29 @@ MWF.xApplication.cms.Xform.Actionbar = MWF.CMSActionbar = new Class({
}
}.bind(this));
},
getImagePath: function(img, iscustom){
var path = "../x_component_cms_FormDesigner/Module/Actionbar/";
if( iscustom ){
var style;
if( this.json.customIconStyle ){
style = this.json.customIconStyle;
}else{
style = (this.json.style || "default").indexOf("red") > -1 ? "red" : "blue";
}
return path+""+this.form.options.style+"/custom/"+ style + "/" +img;
}else{
return path+(this.options.style||"default") +"/tools/"+ (this.json.style || "default") +"/"+img
}
},
getImageOverPath: function(img_over, img, iscustom){
var path = "../x_component_cms_FormDesigner/Module/Actionbar/";
if( iscustom ){
var style_over = this.json.customIconOverStyle || "white";
return path+""+this.form.options.style+"/custom/" + style_over + "/"+ img;
}else{
return path+(this.options.style||"default")+"/tools/"+ (this.json.style || "default") +"/"+img_over;
}
},
setToolbars: function(tools, node, readonly, noCondition){
tools.each(function(tool){
var flag = true;
......@@ -162,8 +185,10 @@ MWF.xApplication.cms.Xform.Actionbar = MWF.CMSActionbar = new Class({
var actionNode = new Element("div", {
"id": tool.id,
"MWFnodetype": tool.type,
"MWFButtonImage": "../x_component_cms_FormDesigner/Module/Actionbar/"+(this.options.style||"default") +"/tools/"+ (this.json.style || "default") +"/"+tool.img,
"MWFButtonImageOver": "../x_component_cms_FormDesigner/Module/Actionbar/"+(this.options.style||"default")+"/tools/"+ (this.json.style || "default") +"/"+tool.img_over,
//"MWFButtonImage": "../x_component_cms_FormDesigner/Module/Actionbar/"+(this.options.style||"default") +"/tools/"+ (this.json.style || "default") +"/"+tool.img,
//"MWFButtonImageOver": "../x_component_cms_FormDesigner/Module/Actionbar/"+(this.options.style||"default")+"/tools/"+ (this.json.style || "default") +"/"+tool.img_over,
"MWFButtonImage": this.getImagePath(tool.img, tool.customImg),
"MWFButtonImageOver": this.getImageOverPath(tool.img_over, tool.img, tool.customImg),
"title": tool.title,
"MWFButtonAction": tool.action,
"MWFButtonText": tool.text
......
......@@ -15,7 +15,7 @@
<th>
<div class="selectFlag">
<div class="selectFlagArea" style="cursor: pointer"
data-o2-events="click:selectAllFile">
data-o2-events="click:selectAll">
<div class="selectFlagIcon o2WorkApplication"></div>
</div>
</div>
......
......@@ -6,6 +6,7 @@
<col width="15%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="15%">
<col width="15%">
</colgroup>
......@@ -22,6 +23,7 @@
</div>
</td>
<td style="text-align: left;"><span>{{$.processName}}</span></td>
<td style="text-align: left;"><span>{{$.activityName}}</span></td>
<td style="text-align: left;"><span>{{$.creatorPersonName}}</span></td>
<td style="text-align: left;"><span>{{$.creatorUnitName}}</span></td>
<td style="text-align: left;"><span>{{$.startTime}}</span></td>
......
......@@ -5,6 +5,7 @@
<col width="15%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="15%">
<col width="15%">
</colgroup>
......@@ -12,6 +13,7 @@
<tr class="listItem">
<th><span style="padding-left: 10px">{{$.lp.subject}}</span></th>
<th><span>{{$.lp.process}}</span></th>
<th><span>{{$.lp.activity}}</span></th>
<th><span>{{$.lp.creator}}</span></th>
<th><span>{{$.lp.createunit}}</span></th>
<th><span>{{$.lp.startTime}}</span></th>
......
......@@ -13,12 +13,18 @@ MWF.xApplication.process.Application.Main = new Class({
"icon": "icon.png",
"application": "",
"id": "",
"navi" : "all",
"title": MWF.xApplication.process.Application.LP.title
},
onQueryLoad: function(){
this.lp = MWF.xApplication.process.Application.LP;
this.action = o2.Actions.load("x_processplatform_assemble_surface");
if (this.status) this.options.id = this.status.id;
if (this.status) {
this.options.id = this.status.id;
if(this.status.navi){
this.options.navi = this.status.navi;
}
}
this._loadCss();
},
loadApplication: function(callback){
......@@ -30,7 +36,7 @@ MWF.xApplication.process.Application.Main = new Class({
var url = this.path+this.options.style+"/view/view.html";
this.content.loadHtml(url, {"bind": {"acl":this.acl,"lp": this.lp,"data":{"application" : this.application}}, "module": this}, function(){
this.setLayout();
this.loadList("all");
this.loadList(this.options.navi);
if (callback) callback();
}.bind(this));
}
......@@ -1309,17 +1315,15 @@ MWF.xApplication.process.Application.Toolbar = new Class({
});
}else {
_self.action.WorkAction.manageDelete( data.id , function(){
_self.action.WorkAction.delete( data.id , function(){
count++;
if( dataList.length == count ){
_self.app.notice("成功删除"+count+"个工作。");
_self.explorer.refresh();
}
});
}
}.bind(this));
this.close();
......
......@@ -247,17 +247,32 @@ MWF.xApplication.process.FormDesigner.Module.Actionbar = MWF.FCActionbar = new C
}
}.bind(this));
},
getImagePath: function(img, iscustom){
if( iscustom ){
var path = this.json.customIconStyle ? (this.json.customIconStyle+ "/") : "";
return this.path+""+this.options.style +"/custom/"+path+img
}else{
return this.path+""+this.options.style+"/tools/"+(this.json.style || "default")+"/"+img;
}
},
getImageOverPath: function(img, iscustom){
if( iscustom && this.json.customIconOverStyle ){
return this.path+""+this.options.style +"/custom/"+this.json.customIconOverStyle+ "/" +img;
}else{
return this.path+""+this.options.style+"/tools/"+this.json.iconOverStyle+"/"+img;
}
},
setToolbars: function(tools, node){
tools.each(function(tool){
var actionNode = new Element("div", {
"MWFnodetype": tool.type,
"MWFButtonImage": this.path+""+this.options.style+"/tools/"+(this.json.style || "default")+"/"+tool.img,
"MWFButtonImage": this.getImagePath(tool.img, tool.customImg),
"title": tool.title,
"MWFButtonAction": tool.action,
"MWFButtonText": tool.text
}).inject(node);
if( this.json.iconOverStyle ){
actionNode.set("MWFButtonImageOver" , this.path+""+this.options.style+"/tools/"+this.json.iconOverStyle+"/"+tool.img );
actionNode.set("MWFButtonImageOver" , this.getImageOverPath(tool.img, tool.customImg) );
}
actionNode.isSystemTool = true;
this.systemTools.push(actionNode);
......
......@@ -363,6 +363,7 @@ MWF.xApplication.process.FormDesigner.widget.ActionsEditor.ButtonAction = new Cl
var item = this.iconMenu.addMenuItem("", "click", function(ev){
var src = this.item.getElement("img").get("src");
_self.data.img = src.substr(src.lastIndexOf("/")+1, src.length);
_self.data.customImg = true;
_self.iconNode.setStyle("background-image", "url("+src+")");
_self.editor.fireEvent("change");
ev.stopPropagation();
......
......@@ -201,6 +201,23 @@ MWF.xApplication.process.Xform.Actionbar = MWF.APPActionbar = new Class(
}.bind(this));
},
getImagePath: function(img, iscustom){
var path = "../x_component_process_FormDesigner/Module/Actionbar/";
if( iscustom ){
var iconPath = this.json.customIconStyle ? (this.json.customIconStyle+ "/") : "";
return path+""+this.form.options.style+"/custom/"+iconPath+img;
}else{
return path+(this.options.style||"default") +"/tools/"+ (this.json.style || "default") +"/"+img;
}
},
getImageOverPath: function(img, iscustom){
var path = "../x_component_process_FormDesigner/Module/Actionbar/";
if( iscustom && this.json.customIconOverStyle ){
return path+""+this.form.options.style +"/custom/"+this.json.customIconOverStyle+ "/" +img
}else{
return path+""+(this.options.style||"default")+"/tools/"+( this.json.iconOverStyle || "default" )+"/"+img;
}
},
setToolbarItem: function(tool, node, readonly, noCondition){
var path = "../x_component_process_FormDesigner/Module/Actionbar/";
var flag = true;
......@@ -235,13 +252,13 @@ MWF.xApplication.process.Xform.Actionbar = MWF.APPActionbar = new Class(
"id": tool.id,
"MWFnodetype": tool.type,
//"MWFButtonImage": this.form.path+""+this.form.options.style+"/actionbar/"+tool.img,
"MWFButtonImage": path+(this.options.style||"default") +"/tools/"+ (this.json.style || "default") +"/"+tool.img,
"MWFButtonImage": this.getImagePath(tool.img, tool.customImg),
"title": tool.title,
"MWFButtonAction": tool.action,
"MWFButtonText": tool.text
}).inject(node);
if( this.json.iconOverStyle ){
actionNode.set("MWFButtonImageOver" , path+""+(this.options.style||"default")+"/tools/"+( this.json.iconOverStyle || "default" )+"/"+tool.img );
actionNode.set("MWFButtonImageOver" , this.getImageOverPath(tool.img, tool.customImg) );
}
if( tool.properties ){
actionNode.set(tool.properties);
......
......@@ -82,8 +82,9 @@ MWF.xApplication.process.Xform.Htmleditor = MWF.APPHtmleditor = new Class(
this.fireEvent("afterLoad");
this.fieldModuleLoaded = true;
}
}.bind(this))
}.bind(this));
}
this.node.loadCss("../o2_lib/htmleditor/ckeditor4161/contents.css");
}else{
var config = Object.clone(this.json.editorProperties);
if (this.json.config){
......
......@@ -1080,9 +1080,11 @@ o2.xApplication.process.Xform.widget.OOXML.WordprocessingML = o2.OOXML.WML = new
var bg = table.getStyle("background-color");
if (bg && bg!=="transparent"){
bg = this.getColorHex(bg);
var oo_shd = this.createEl(oo_doc, "shd");
this.setAttrs(oo_shd, {"val": "clear", "color": "auto", "fill": bg});
oo_tblPr.appendChild(oo_shd);
if (bg!=="transparent"){
var oo_shd = this.createEl(oo_doc, "shd");
this.setAttrs(oo_shd, {"val": "clear", "color": "auto", "fill": bg});
oo_tblPr.appendChild(oo_shd);
}
}
......@@ -1198,9 +1200,11 @@ o2.xApplication.process.Xform.widget.OOXML.WordprocessingML = o2.OOXML.WML = new
var bg = td.getStyle("background-color");
if (bg && bg!=="transparent"){
bg = this.getColorHex(bg);
var oo_shd = this.createEl(oo_doc, "shd");
this.setAttrs(oo_shd, {"val": "clear", "color": "auto", "fill": bg});
oo_tcPr.appendChild(oo_shd);
if (bg!=="transparent"){
var oo_shd = this.createEl(oo_doc, "shd");
this.setAttrs(oo_shd, {"val": "clear", "color": "auto", "fill": bg});
oo_tcPr.appendChild(oo_shd);
}
}
//单元格边距
......
......@@ -139,7 +139,7 @@
"overflow": "hidden",
"float": "right",
"cursor": "pointer",
"background": "url(../x_component_process_Application/$Viewer/default/icon/search.png) center center no-repeat",
"background": "url(../x_component_query_Query/$Viewer/default/icon/search.png) center center no-repeat",
},
"searchSimpleInputNode": {
"border": "0px",
......@@ -182,7 +182,7 @@
"viewFilterSearchIconNode": {
"height": "24px",
"width": "40px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/search.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/search.png) center center no-repeat",
"float": "right",
"cursor": "pointer"
},
......@@ -203,7 +203,7 @@
"width": "20px",
"height": "80px",
"float": "right",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/back.png) center 5px no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/back.png) center 5px no-repeat",
"cursor": "pointer"
},
"viewFilterSearchCustomContentNode": {
......@@ -237,7 +237,7 @@
"cursor": "pointer"
},
"viewFilterSearchCustomAddIconNode": {
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/right.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/right.png) center center no-repeat",
"height": "80px"
},
"viewFilterSearchCustomFilterContentNode": {
......@@ -325,11 +325,11 @@
"viewSearchFilterDeleteNode": {
"width": "20px",
"height": "19px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/delFilter.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/delFilter.png) center center no-repeat",
"float": "left"
},
"viewSearchFilterDeleteNode_over": {
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/delFilter_over.png) center center no-repeat"
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/delFilter_over.png) center center no-repeat"
},
"contentAreaNode": {
//"padding": "0px 20px",
......@@ -361,7 +361,7 @@
"viewLoadingIconNode": {
"height": "26px",
"width": "28px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/loading.gif) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/loading.gif) center center no-repeat",
"float": "left"
},
"viewLoadingTextNode": {
......@@ -433,7 +433,7 @@
"width": "20px",
"height": "20px",
"float": "right",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/close.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/close.png) center center no-repeat",
"cursor": "pointer"
},
"worksAreaContentNode": {
......
......@@ -136,7 +136,7 @@
"overflow": "hidden",
"float": "right",
"cursor": "pointer",
"background": "url(../x_component_process_Application/$Viewer/default/icon/search.png) center center no-repeat",
"background": "url(../x_component_query_Query/$Viewer/default/icon/search.png) center center no-repeat",
},
"searchSimpleInputNode": {
"border": "0px",
......@@ -179,7 +179,7 @@
"viewFilterSearchIconNode": {
"height": "24px",
"width": "40px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/search.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/search.png) center center no-repeat",
"float": "right",
"cursor": "pointer"
},
......@@ -200,7 +200,7 @@
"width": "20px",
"height": "80px",
"float": "right",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/back.png) center 5px no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/back.png) center 5px no-repeat",
"cursor": "pointer"
},
"viewFilterSearchCustomContentNode": {
......@@ -234,7 +234,7 @@
"cursor": "pointer"
},
"viewFilterSearchCustomAddIconNode": {
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/right.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/right.png) center center no-repeat",
"height": "80px"
},
"viewFilterSearchCustomFilterContentNode": {
......@@ -323,11 +323,11 @@
"viewSearchFilterDeleteNode": {
"width": "20px",
"height": "19px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/delFilter.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/delFilter.png) center center no-repeat",
"float": "left"
},
"viewSearchFilterDeleteNode_over": {
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/delFilter_over.png) center center no-repeat"
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/delFilter_over.png) center center no-repeat"
},
"contentAreaNode": {
//"padding": "0px 20px",
......@@ -359,7 +359,7 @@
"viewLoadingIconNode": {
"height": "26px",
"width": "28px",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/loading.gif) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/loading.gif) center center no-repeat",
"float": "left"
},
"viewLoadingTextNode": {
......@@ -431,7 +431,7 @@
"width": "20px",
"height": "20px",
"float": "right",
"background": "url("+"../x_component_process_Application/$Viewer/default/icon/close.png) center center no-repeat",
"background": "url("+"../x_component_query_Query/$Viewer/default/icon/close.png) center center no-repeat",
"cursor": "pointer"
},
"worksAreaContentNode": {
......
......@@ -688,9 +688,12 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({
if ((/(^[1-9]\d*$)/.test(p))) p = p.toInt();
if (obj[p]) {
obj = obj[p];
} else {
} else if(obj[p] === undefined || obj[p] === null) {
obj = "";
break;
} else {
obj = obj[p];
break;
}
}
return obj
......
......@@ -289,7 +289,7 @@ o2.xApplication.systemconfig.LP = {
"initialPasswordType": {
"mobileScript": "return person.getMobile().slice(-6)",
"uniqueScript": "return person.getunique().slice(-6)",
"employeesScript": "return person.getEmployee()",
"employeeScript": "return person.getEmployee()",
"pinyinScript": "return person.getPinyin()",
"textInfo": "在下面的输入框中输入的密码,将作为新创建用户的初始密码。",
'scriptInfo': "在下面的编辑器中输入脚本,返回一个字符串值,作为新创建用户的初始密码。您可以使用person对象获取人员相关信息。如将人员姓名全拼作为初始密码,可使用脚本:return person.getPinyin()"
......@@ -583,8 +583,8 @@ o2.xApplication.systemconfig.LP = {
"saveDatabaseConfigSuccess": "数据库配置保存成功,请重启服务器",
"saveEntityConfigSuccess": "实体类配置保存成功,请重启服务器",
"dumpRestoreTools": "数据库备份复工具",
"toolsInfo": "O2OA提供了数据备份和复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
"dumpRestoreTools": "数据库备份复工具",
"toolsInfo": "O2OA提供了数据备份和复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
"所以在修改数据库配置之前,建议您先使用O2OA的备份功能将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库。<br>" +
"<span class='mainColor_color'>在您进行备份或恢复数据时,请勿离开本页面。您可以在另一个浏览器窗口中进行其它操作</span>",
......@@ -1392,7 +1392,8 @@ o2.xApplication.systemconfig.LP = {
"key": "通道名称",
"type": "类型",
"filter": "过滤器",
"loader": "加载器"
"loader": "加载器",
"startTlsEnable": "升级传输加密"
},
"none": "",
"editConsumer": "编辑消息通道",
......@@ -1404,7 +1405,7 @@ o2.xApplication.systemconfig.LP = {
"kafka": ['bootstrapServers', 'topic', 'securityProtocol', 'saslMechanism', 'saslMechanism', 'username', 'password'],
"activemq": ['url', 'queueName', 'username', 'password'],
"restful": ['url', 'method', 'internal'],
"mail": ['host', 'port', 'sslEnable', 'auth', 'from', 'password'],
"mail": ['host', 'port', 'sslEnable', 'auth', 'startTlsEnable', 'from', 'password'],
"jdbc": ['driverClass', 'url', 'catalog', 'schema', 'table', 'username', 'password'],
"table": ['table'],
"hadoop": ['fsDefaultFS', 'path', 'username']
......
......@@ -288,8 +288,8 @@ o2.xApplication.systemconfig.LP = {
},
"initialPasswordType": {
"mobileScript": "return person.getMobile().slice(-6)",
"uniqueScript": "return person.getunique().slice(-6)",
"employeesScript": "return person.getEmployee()",
"uniqueScript": "return person.getUnique().slice(-6)",
"employeeScript": "return person.getEmployee()",
"pinyinScript": "return person.getPinyin()",
"textInfo": "在下面的输入框中输入的密码,将作为新创建用户的初始密码。",
'scriptInfo': "在下面的编辑器中输入脚本,返回一个字符串值,作为新创建用户的初始密码。您可以使用person对象获取人员相关信息。如将人员姓名全拼作为初始密码,可使用脚本:return person.getPinyin()"
......@@ -583,8 +583,8 @@ o2.xApplication.systemconfig.LP = {
"saveDatabaseConfigSuccess": "数据库配置保存成功,请重启服务器",
"saveEntityConfigSuccess": "实体类配置保存成功,请重启服务器",
"dumpRestoreTools": "数据库备份复工具",
"toolsInfo": "O2OA提供了数据备份和复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
"dumpRestoreTools": "数据库备份复工具",
"toolsInfo": "O2OA提供了数据备份和复工具,<span style='color: red'>修改数据库配置在大部分情况下都会影响到系统现有数据</span>," +
"所以在修改数据库配置之前,建议您先使用O2OA的备份功能将系统数据进行备份,在修改完数据库配置后重启服务器,然后将备份的数据恢复到数据库。<br>" +
"<span class='mainColor_color'>在您进行备份或恢复数据时,请勿离开本页面。您可以在另一个浏览器窗口中进行其它操作</span>",
......@@ -1393,7 +1393,8 @@ o2.xApplication.systemconfig.LP = {
"key": "通道名称",
"type": "类型",
"filter": "过滤器",
"loader": "加载器"
"loader": "加载器",
"startTlsEnable": "升级传输加密"
},
"none": "",
"editConsumer": "编辑消息通道",
......@@ -1405,7 +1406,7 @@ o2.xApplication.systemconfig.LP = {
"kafka": ['bootstrapServers', 'topic', 'securityProtocol', 'saslMechanism', 'saslMechanism', 'username', 'password'],
"activemq": ['url', 'queueName', 'username', 'password'],
"restful": ['url', 'method', 'internal'],
"mail": ['host', 'port', 'sslEnable', 'auth', 'from', 'password'],
"mail": ['host', 'port', 'sslEnable', 'auth', 'startTlsEnable', 'from', 'password'],
"jdbc": ['driverClass', 'url', 'catalog', 'schema', 'table', 'username', 'password'],
"table": ['table'],
"hadoop": ['fsDefaultFS', 'path', 'username']
......
......@@ -4,12 +4,12 @@
<div class="item_title">{{lp._passwordConfig.newPersonPassword}}</div>
<div class="item_info">{{lp._passwordConfig.newPersonPasswordInfo}}</div>
<BaseSelect :label="lp._passwordConfig.initialPassword" @change="changePasswordType" v-model:value="initialPasswordType" :options="lp._passwordConfig.initialPasswordTypeOptions"></BaseSelect>
<BaseSelect :label="lp._passwordConfig.initialPassword" :label-style="{width: '100px'}" @change="changePasswordType" v-model:value="initialPasswordType" :options="lp._passwordConfig.initialPasswordTypeOptions"></BaseSelect>
<div ref="passwordNode" class="item_hide">
<div class="item_info">{{lp._passwordConfig.initialPasswordType.textInfo}}</div>
<form>
<BaseInput :label="lp._passwordConfig.initialPasswordText" input-type="password" :show-password="true" v-model:value="passwordText"></BaseInput>
<BaseInput :label="lp._passwordConfig.initialPasswordText" :label-style="{width: '100px'}" input-type="password" :show-password="true" v-model:value="passwordText"></BaseInput>
<div class="item_info" style="padding-left: 20px">
<button class="mainColor_bg" style="width: 100px" @click="saveInitialPassword">{{lp.operation.ok}}</button>
</div>
......@@ -182,6 +182,7 @@ const savePasswordRuleConfig = async ()=>{
}
const saveInitialPasswordConfig = async (type) => {
initialPasswordType.value = type;
personData.value.extension.initialPasswordType = type || initialPasswordType.value;
switch (initialPasswordType.value) {
case 'text':
......
......@@ -62,6 +62,7 @@
<BaseInput label="port" v-model:value="currentData.port" :label-style="labelStyle"/>
<BaseSwitch label="sslEnable" v-model:value="currentData.sslEnable" :label-style="labelStyle"/>
<BaseSwitch label="auth" v-model:value="currentData.auth" :label-style="labelStyle"/>
<BaseSwitch :label="lp._messageConfig.consumerLabel.startTlsEnable" v-model:value="currentData.startTlsEnable" :label-style="labelStyle"/>
<BaseInput label="from" v-model:value="currentData.from" :label-style="labelStyle"/>
<BaseInput label="password" v-model:value="currentData.password" :label-style="labelStyle"/>
</div>
......
......@@ -134,6 +134,7 @@
<BaseInput label="port" v-model:value="currentData.port" :label-style="labelStyle"/>
<BaseSwitch label="sslEnable" v-model:value="currentData.sslEnable" :label-style="labelStyle"/>
<BaseSwitch label="auth" v-model:value="currentData.auth" :label-style="labelStyle"/>
<BaseSwitch :label="lp._messageConfig.consumerLabel.startTlsEnable" v-model:value="currentData.startTlsEnable" :label-style="labelStyle"/>
<BaseInput label="from" v-model:value="currentData.from" :label-style="labelStyle"/>
<BaseInput label="password" v-model:value="currentData.password" :label-style="labelStyle"/>
</div>
......
......@@ -61,7 +61,7 @@
type="textarea"
:input-style="{width: '310px'}"
:options="{rows: 2, spellcheck: false, style: 'word-break: break-all;'}"
@changeConfig="(value)=>{const v = value.split(/\s*,\s*/g); generalData.attachmentConfig.fileTypeIncludes=v; saveConfig('general', 'attachmentConfig.fileTypeIncludes', v)}"
@changeConfig="(value)=>{const v = (value && !Array.isArray(value)) ? value.split(/\s*,\s*/g): (value||[]); generalData.attachmentConfig.fileTypeIncludes=v; saveConfig('general', 'attachmentConfig.fileTypeIncludes', v)}"
></BaseItem>
<div class="item_info">{{lp._serversConfig.fileTypeIncludesInfo}}</div>
</div>
......@@ -76,7 +76,7 @@
type="textarea"
:input-style="{width: '310px'}"
:options="{rows: 2, spellcheck: false, style: 'word-break: break-all;'}"
@changeConfig="(value)=>{const v = value.split(/\s*,\s*/g); generalData.attachmentConfig.fileTypeExcludes=v; saveConfig('general', 'attachmentConfig.fileTypeExcludes', v)}"
@changeConfig="(value)=>{const v = (value && !Array.isArray(value)) ? value.split(/\s*,\s*/g): (value||[]); generalData.attachmentConfig.fileTypeExcludes=v; saveConfig('general', 'attachmentConfig.fileTypeExcludes', v)}"
></BaseItem>
<div class="item_info">{{lp._serversConfig.fileTypeExcludesInfo}}</div>
</div>
......@@ -124,7 +124,7 @@
:config="generalData.scriptingBlockedClasses"
:allowEditor="true"
type="textarea"
@changeConfig="(value)=>{generalData.scriptingBlockedClasses=value; saveConfig('general', 'scriptingBlockedClasses', value.split(/\s*,\s*/g))}"
@changeConfig="(value)=>{const v = (value && !Array.isArray(value)) ? value.split(/\s*,\s*/g): (value||[]); generalData.scriptingBlockedClasses=v; saveConfig('general', 'scriptingBlockedClasses', v)}"
></BaseItem>
<BaseItem
......
......@@ -28,10 +28,14 @@ layout.addReady(function(){
}
layout.openApplication(null, appName, option||{}, m_status);
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
if (layout.session.user.name === "anonymous"){
o2.loadCss("../o2_core/o2/xDesktop/$Default/blue/style-skin.css");
}else{
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
}
};
if (layout.session && layout.session.user){
......
......@@ -30,10 +30,14 @@ layout.addReady(function(){
layout.openApplication(null, appName, option||{}, m_status);
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
if (layout.session.user.name === "anonymous"){
o2.loadCss("../o2_core/o2/xDesktop/$Default/blue/style-skin.css");
}else{
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
}
};
// if (layout.session && layout.session.user){
......
......@@ -112,10 +112,14 @@ layout.addReady(function(){
layout.openApplication(null, appName, option||{}, m_status);
}
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
if (layout.session.user.name === "anonymous"){
o2.loadCss("../o2_core/o2/xDesktop/$Default/blue/style-skin.css");
}else{
o2.xDesktop.getUserLayout(function(){
var style = layout.userLayout.flatStyle;
o2.loadCss("../o2_core/o2/xDesktop/$Default/"+style+"/style-skin.css");
});
}
};
if (layout.session && layout.session.user){
_load();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册