Explorar el Código

看板设置参数校验/session过期自动重连

zhuth hace 8 años
padre
commit
bc40fa4971

+ 1 - 0
kanban-console/src/main/webapp/WEB-INF/views/board.html

@@ -7,6 +7,7 @@
 <link href="static/lib/ext/4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet" type="text/css" />
 <script src="static/lib/ext/4.2/ext-all.js" type="text/javascript"></script>
 <script type="text/javascript" src="static/lib/i18n/i18n.js"></script>
+<script type="text/javascript" src="static/js/util/utils.js"></script>
 
 <script type="text/javascript">
 Ext.Loader.setConfig({

+ 2 - 1
kanban-console/src/main/webapp/resources/app/controller/login.js

@@ -27,7 +27,7 @@ Ext.define('erp.controller.login', {
 					var viewport = Ext.getCmp('loginViewport');
 					var el = viewport.getEl();
 					if(!values.name||!values.password){
-						Ext.Msg.alert('提示','请输入用户名和密码!');
+						showErrorMsg('提示','请输入用户名和密码!');
 					}else{
 						el.mask('登录中...');
 						Ext.Ajax.request({
@@ -42,6 +42,7 @@ Ext.define('erp.controller.login', {
 								} else {
 									//设置cookie
 									me.setCookie('username',res.name,'/',14);
+									me.setCookie('password',values.password);
 									me.setCookie('role',res.role,'/',14);
 									
 									/**

+ 71 - 5
kanban-console/src/main/webapp/resources/app/view/boardmodel/modeleditpanel.js

@@ -54,6 +54,14 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 				handler:function(){
 					me.importXml();
 				}
+			}, '-', {
+				xtype:'button',
+				text:'检测',
+				handler:function(){
+					if(me.check()) {
+						showErrorMsg('成功', '未发现未定义参数。');
+					}
+				}
 			}]
 		});
 		me.callParent(arguments); 
@@ -92,11 +100,11 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 		var modelbuilderpanel = Ext.getCmp('modelbuilderpanel');
 		var record = modelbuilderpanel.modelRecord;
 		if(!record){
-			Ext.Msg.alert('提示','请先选择模板!')
+			showErrorMsg('提示','看板对象为空!')
 		}else{
 			var xml = Ext.getCmp('xmlContent').value;
 			if(!xml){
-				Ext.Msg.alert('提示','请先输入内容');
+				showErrorMsg('提示','请先输入内容');
 			}else{
 				var bol = me.validateXmlFormat(xml);
 				if(!bol){
@@ -121,7 +129,7 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 	            }
 	            return true;
 	        } catch (ex) {
-	        	Ext.Msg.alert('提示','XML格式有误:'+ex.message);
+	        	showErrorMsg('提示','XML格式有误:'+ex.message);
 	        	return false;
 	        }        					
 		}else{
@@ -215,8 +223,66 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 		var builderPanel = Ext.getCmp('modelbuilderpanel');
 		var items = builderPanel.items.items;
 		var content = me.getComponentXml(items,builderPanel);
+		var contentParams = me.getParams(content);
+		if(!me.checkParams(contentParams, 'content')) {
+			return;
+		}
+		if(extraParams) {
+			var titleParams = me.getParams(extraParams.title);
+			if(!me.checkParams(titleParams, 'title')) {
+				return;
+			}
+		}
 		me.save(content,extraParams);
 	},
+	check: function() {
+		var me = this;
+		var builderPanel = Ext.getCmp('modelbuilderpanel');
+		var items = builderPanel.items.items;
+		var content = me.getComponentXml(items,builderPanel);
+		
+		var contentParams = me.getParams(content);
+		if(!me.checkParams(contentParams, 'content')) {
+			return false;
+		}
+		var form = Ext.getCmp('tplSetForm');
+		if(form) {
+			var extraParams = form.getForm().getValues();
+			var titleParams = me.getParams(extraParams.title);
+			if(!me.checkParams(titleParams, 'title')) {
+				return false;
+			}
+		}
+		return true;
+	},
+	getParams: function(content) {
+		var reg = /\$P{([^\}]{0,})\}/g
+		var result = content.match(reg);
+		var params = [];
+		Ext.Array.each(result, function(r) {
+			var rs = reg.exec(r);
+			if(rs) {
+				params.push(rs[1]);
+			}
+		});
+		return params;
+	},
+	checkParams: function(params, view) {
+		var paramsGrid = Ext.getCmp('modeltree');
+		var paramsRecord = paramsGrid.getStore().data.items;
+		var panelParams = [];
+		var success = true;
+		Ext.Array.each(paramsRecord, function(p) {
+			panelParams.push(p.get('name'));
+		});
+		Ext.Array.each(params, function(p) {
+			if(panelParams.indexOf(p) == -1) {
+				showErrorMsg('警告', view + '中使用的参数  ' + p + '  未定义!');
+				success = false;
+			}
+		});
+		return success;
+	},
 	getComponentXml:function(items,builderPanel){
 		var content = '<content>';
 		Ext.Array.each(items,function(panel,index){
@@ -254,9 +320,9 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
         	callback:function(options,success,response){
 				var res = Ext.decode(response.responseText);
 				if(success) {
-					Ext.Msg.alert('提示','保存成功!');
+					showErrorMsg('提示','保存成功!');
 				}else {
-					Ext.Msg.alert('失败', res.message);
+					showErrorMsg('失败', res.message);
 				}
         		var win = Ext.getCmp('tplSet');
         		if(win){

+ 1 - 1
kanban-console/src/main/webapp/resources/app/view/boardmodel/modeltree.js

@@ -33,7 +33,7 @@ Ext.define('erp.view.boardmodel.modeltree',{
 					res = res instanceof Array ? res : [res];
 					grid.getStore().loadData(res);
 				}else {
-					Ext.Msg.alert('失败', res.message);
+					showErrorMsg('失败', res.message);
 				}
 			}
 		});

+ 2 - 2
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageLeftPanel.js

@@ -107,7 +107,7 @@ Ext.define('erp.view.desktop.BoardManageLeftPanel',{
 							callback:function(options,success,response){
 								var res = Ext.decode(response.responseText);
 								if(typeof(res.success)!=='undefined'&&res.success==false){
-									Ext.Msg.alert('删除失败',res.message);
+									showErrorMsg('删除失败',res.message);
 								}else{
 									me.refreshData(me.shortcutsView,store,record);
 	
@@ -125,7 +125,7 @@ Ext.define('erp.view.desktop.BoardManageLeftPanel',{
     			}
     		});
     	}else{
-    		Ext.Msg.alert('提示','未选中面板!');
+    		showErrorMsg('提示','未选中面板!');
     	}
     },
     refreshData:function(view,store,record){

+ 9 - 9
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageMainPanel.js

@@ -115,7 +115,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                     if(formpanel.isValid()) {
                         formpanel.savePanel(formpanel)
                     }else {
-                        Ext.Msg.alert('警告', '有必填项未填!');
+                        showErrorMsg('警告', '有必填项未填!');
                     }
                 }
             }, '->'],
@@ -124,7 +124,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                 var managePanel = Ext.getCmp('manage');
                 var el = me.getEl();
                 if(!managePanel.selectedPanelRecord) {
-                    Ext.Msg.confirm('提示', '请先选择左侧面板')
+                    showErrorMsg('提示', '请先选择左侧面板')
                     return;
                 }
                 var newRecord = {
@@ -153,9 +153,9 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                         el.unmask();
                         var res = Ext.decode(response.responseText);
                         if(typeof(res.success)!=='undefined'&&res.success==false){
-                            Ext.Msg.alert('保存失败',res.message);
+                            showErrorMsg('保存失败',res.message);
                         }else{
-                            Ext.Msg.alert('提示','保存成功!');
+                            showErrorMsg('提示','保存成功!');
                             var desktop = Ext.getCmp('desktop');
                             desktop.shortcutsView.store.reload();
                             if(type=='save'){
@@ -224,7 +224,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                 disabled: true,
                 handler: function() {
                     if(!me.initRecord.get('code')) {
-                        Ext.Msg.alert('提示', '请先保存面板再执行添加参数操作!');
+                        showErrorMsg('提示', '请先保存面板再执行添加参数操作!');
                         return;
                     }
                     var grid = this.up('grid');
@@ -284,7 +284,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                             res = res instanceof Array ? res : [res];
                             grid.getStore().loadData(res);
                         }else {
-                            Ext.Msg.alert('失败', res.message);
+                            showErrorMsg('失败', res.message);
                         }
                     }
                 });
@@ -317,10 +317,10 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                         if(success) {
                             if(grid) {
                                 grid.loadGridData();
-                                Ext.Msg.alert('成功', '已更新');
+                                showErrorMsg('成功', '已更新');
                             }
                         }else {
-                            Ext.Msg.alert('失败', res.message);
+                            showErrorMsg('失败', res.message);
                         }
                     }
                 });
@@ -338,7 +338,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
                             if(success) {
                                 grid.loadGridData();
                             }else {
-                                Ext.Msg.alert('失败', res.message);
+                                showErrorMsg('失败', res.message);
                             }
                         }
                     });

+ 5 - 5
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageRightPanel.js

@@ -95,7 +95,7 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
                 disabled: true,
                 handler: function() {
                     if(!Ext.getCmp('managemain').initRecord.get('code')) {
-                        Ext.Msg.alert('提示', '请先保存面板再执行添加看板操作!');
+                        showErrorMsg('提示', '请先保存面板再执行添加看板操作!');
                         return;
                     }
                     var grid = this.up('grid');
@@ -146,7 +146,7 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
                             grid.getStore().loadData(res);
                             grid.getStore().sort('enabled', 'DESC');
                         }else {
-                            Ext.Msg.alert('失败', res.message);
+                            showErrorMsg('失败', res.message);
                         }
                     }
                 });
@@ -170,10 +170,10 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
                         if(success) {
                             if(grid) {
                                 grid.loadGridData();
-                                Ext.Msg.alert('成功', '已更新');
+                                showErrorMsg('成功', '已更新');
                             }
                         }else {
-                            Ext.Msg.alert('失败', res.message);
+                            showErrorMsg('失败', res.message);
                         }
                     }
                 });
@@ -191,7 +191,7 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
                                     grid.loadGridData();
                                 }
                             } else {
-                                Ext.Msg.alert('失败', res.message);
+                                showErrorMsg('失败', res.message);
                             }
                         }
                     });

+ 19 - 16
kanban-console/src/main/webapp/resources/app/view/desktop/BoardParamWindow.js

@@ -7,6 +7,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
     layout:'border',
     id:'template',
     resData:null,
+    border: 0,
     initComponent:function(){
         var me = this;
         me.items = [{
@@ -22,6 +23,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
             items:[{
                 xtype:'fieldset',
                 title:'参数设置',
+                hidden: true
             },{
                 xtype:'fieldset',
                 title:'运行设置',
@@ -80,8 +82,8 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
                     comboxs.push(combox);
                 });
                 paramFieldSet.add(comboxs);
-                if(comboxs.length == 0) {
-                    paramFieldSet.setVisible(false)
+                if(comboxs.length != 0) {
+                    paramFieldSet.show();
                 }
                 form.doLayout();
             }
@@ -150,10 +152,18 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
             var me = Ext.getCmp('template');
             var formpanel = Ext.getCmp('paramForm');
             if(formpanel.isValid()) {
+				var modelGrid = Ext.getCmp('modelGrid');
+				if(modelGrid.getSelectedModels().length == 0) {
+					showErrorMsg('警告','请至少选中一个看板!');
+					return;
+				}
+				if(!me.checkFrequency()) {
+					return;
+				}
+				me.setFullScreen();
                 me.savePanelInstance();
-                me.setFullScreen();
             }else {
-                Ext.Msg.alert('警告', '有必填项未填!');
+                showErrorMsg('警告', '有必填项未填!');
             }
         }
     },{
@@ -207,7 +217,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
                             me.resData = res;
                             me.load();
                         }else {
-                            parent.Ext.Msg.alert('失败', res.message);
+                            showErrorMsg('失败', res.message, Ext.getCmp('template'));
                         }
                     }
                 }
@@ -220,14 +230,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
      */
     savePanelInstance: function() {
         var me = this;
-        var modelGrid = Ext.getCmp('modelGrid');
-        if(modelGrid.getSelectedModels().length == 0) {
-            Ext.Msg.alert('警告','请至少选中一个看板!');
-            return;
-        }
-        if(!me.checkFrequency()) {
-            return;
-        }
+        
         var params = me.getBoardConfig();
         Ext.Ajax.request({
             url:'panelInstance/updatePart/',
@@ -240,7 +243,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
                 if(success) {
                     me.viewBoard();
                 }else {
-                    Ext.Msg.alert('失败', res.message);
+                    showErrorMsg('失败', res.message);
                 }
             }
         });
@@ -276,14 +279,14 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
         var switchFreq = Ext.getCmp('switchFrequency').value;
         if(switchFreq){
             if(refreshFreq>=switchFreq){
-                Ext.Msg.alert('警告','刷新频率必须小于切换频率!');
+                showErrorMsg('警告','刷新频率必须小于切换频率!');
                 return false;
             }
         }else {
             var modelGrid = Ext.getCmp('modelGrid');
             // 看板数量为2个以上时切换频率不可为空
             if(modelGrid.getSelectedModels().length >= 2) {
-                Ext.Msg.alert('警告','切换频率不可为空');
+                showErrorMsg('警告','切换频率不可为空');
                 return false;
             }
         }

+ 0 - 80
kanban-console/src/main/webapp/resources/app/view/desktop/ReLogin.js

@@ -1,80 +0,0 @@
-Ext.define('erp.view.desktop.ReLogin',{
-	extend:'Ext.window.Window',
-	alias:'widget.relogin',
-	id:'relogin',
-	title:'重新登录',
-	layout:'fit',
-	modal:true	,
-	maximizable:false,
-	initComponent:function(){
-		var me = this;
-		me.items = [{
-            xtype: 'form',
-            id:'reloginform',
-            bodyStyle: {
-                border: 'none'
-            },
-            bodyPadding: 10,
-            defaults: {
-                width: 300,
-                labelWidth: 80
-            },
-            items: [{
-                xtype: 'textfield',
-                name: 'name',
-                readOnly: true,
-                fieldLabel: '用户名',
-                value: getCookie('username')
-            }, {  
-                xtype: 'textfield',
-                name: 'password',
-                allowBlank: false,
-                inputType: 'password',
-                blankText: '请输入密码',
-                fieldLabel: '密码',
-                listeners: {
-					specialkey : function(field, e) {
-						if (e.getKey() == Ext.EventObject.ENTER) {
-							me.relogin();
-						}
-					}
-				},
-            }],
-            buttons: [{
-                xtype: 'button',
-                text: '确定',
-                formBind:true,
-                handler: function(btn) {
-                    me.relogin();
-                }
-            }, {
-                xtype: 'button',
-                text: '取消',
-                handler: function(btn) {
-                    btn.ownerCt.ownerCt.ownerCt.close();
-                }
-            }]
-        }];
-		me.callParent(arguments);
-    },
-    relogin: function() {
-        var me = this;
-        var form = Ext.getCmp('reloginform');
-        var values = form.getForm().getValues();
-        me.getEl().mask('loading...');
-        Ext.Ajax.request({
-            url : basePath + 'user/login',
-            method : 'POST',
-            params : values,
-            callback : function(options, success, response) {
-                me.getEl().unmask();
-                var res = Ext.decode(response.responseText);
-                if (res.success == false) {
-                    Ext.Msg.alert('失败', res.message);
-                } else {
-                    Ext.getCmp('relogin').close();
-                }
-            }
-        });	
-    }
-});

+ 1 - 6
kanban-console/src/main/webapp/resources/app/view/desktop/StartMenu.js

@@ -18,11 +18,6 @@ Ext.define('erp.view.desktop.StartMenu', {
     toolConfig: {
         width: 80,
         items: [{
-            text:'快速重连',
-            handler: function(){
-                Ext.create('erp.view.desktop.ReLogin').show();
-            }
-        }, '-', {
             text:'退出',
             iconCls:'logout',
             handler: function(){
@@ -32,7 +27,7 @@ Ext.define('erp.view.desktop.StartMenu', {
                     callback:function(options,success,response){
                         var res = Ext.decode(response.responseText);
                         if(res.success==false){
-                            Ext.Msg.alert('退出失败',res.message);
+                            showErrorMsg('退出失败',res.message);
                         }else{
                             window.location.reload();
                         }

+ 2 - 2
kanban-console/src/main/webapp/resources/app/view/user/UserInfo.js

@@ -113,9 +113,9 @@ Ext.define('erp.view.user.UserInfo',{
                 if(response.responseText == '') return;
                 var res = JSON.parse(response.responseText);
                 if(success) {
-                    Ext.Msg.alert('成功', '已更新!');
+                    showErrorMsg('成功', '已更新!');
                 }else {
-                    Ext.Msg.alert('失败', res.message);
+                    showErrorMsg('失败', res.message);
                 }
             }
         });

+ 7 - 7
kanban-console/src/main/webapp/resources/app/view/user/UserSetting.js

@@ -70,7 +70,7 @@ Ext.define('erp.view.user.UserSetting',{
 				afterrender:function(grid){
 					grid.store.load(function(record, e, success) {
 						if(!success) {
-							Ext.Msg.alert('失败', '权限不足!');
+							showErrorMsg('失败', '权限不足!');
 						}
 						grid.getSelectionModel().select(0);
 					});
@@ -191,7 +191,7 @@ Ext.define('erp.view.user.UserSetting',{
 		var grid = me.getGrid();
 		var bol = me.checkGridDirty(grid);
 		if(bol){
-			Ext.Msg.alert('提示','请先保存当前操作!');
+			showErrorMsg('提示','请先保存当前操作!');
 		}else{
 			grid.store.insert(0,{
 				code:'',
@@ -229,9 +229,9 @@ Ext.define('erp.view.user.UserSetting',{
 							el.unmask();
 							var res = Ext.decode(response.responseText);
 							if(typeof(res.success)!=='undefined'&&res.success==false){
-								Ext.Msg.alert('提示','删除失败,原因:'+res.message);
+								showErrorMsg('提示','删除失败,原因:'+res.message);
 							}else{
-								Ext.Msg.alert('提示','删除成功!');
+								showErrorMsg('提示','删除成功!');
 								grid.store.reload();
 								userboardgrid.getSelectionModel().deselectAll();
 							}
@@ -271,9 +271,9 @@ Ext.define('erp.view.user.UserSetting',{
 					el.unmask();
 					var res = Ext.decode(response.responseText);
 					if(typeof(res.success)!=='undefined'&&res.success==false){
-						Ext.Msg.alert('提示','保存失败,原因:'+res.message);
+						showErrorMsg('提示','保存失败,原因:'+res.message);
 					}else{
-						Ext.Msg.alert('提示','保存成功!');
+						showErrorMsg('提示','保存成功!');
 						grid.store.reload();
 						var code;
 						if(type=='updatePart'||type=='update'){
@@ -289,7 +289,7 @@ Ext.define('erp.view.user.UserSetting',{
 				}
 			});
 		}else{
-			Ext.Msg.alert('提示','未选中用户!');
+			showErrorMsg('提示','未选中用户!');
 		}
 	},
 	reSelect:function(grid,code){

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
kanban-console/src/main/webapp/resources/js/boardshow/main.bundle.js


+ 30 - 0
kanban-console/src/main/webapp/resources/js/util/utils.js

@@ -102,4 +102,34 @@ function subStrLength(str, length, suf) {
 	}else {
 		return str;
 	}
+}
+
+function showErrorMsg(title, message, win) {
+	if(message == '未登录') {
+		Ext.Msg.confirm('提示','登录已过期,是否自动重新登录?',function(btn){
+			if(btn == 'yes') {
+				var values = {
+					name: getCookie('username'),
+					password: getCookie('password')
+				}
+				Ext.Ajax.request({
+					url : basePath + 'user/login',
+					method : 'POST',
+					params : values,
+					callback : function(options, success, response) {
+						var res = Ext.decode(response.responseText);
+						if (res.success == false) {
+							Ext.Msg.alert(title, message);('失败', res.message);
+						} else {
+							if(win) {
+								win.doLayout();
+							}
+						}
+					}
+				});
+			}
+		});
+	}else{
+		Ext.Msg.alert(title, message);
+	}
 }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
kanban-console/src/main/webapp/resources/lib/boardshow/vendor.js


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio