浏览代码

添加看板备份还原功能

zhuth 8 年之前
父节点
当前提交
38521ca316

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

@@ -5,7 +5,8 @@ Ext.define('erp.controller.board', {
     'boardmodel.editcomponent','boardmodel.modelbuilderpanel','boardmodel.elementconfigpanel',
     'boardmodel.elementdetailgrid','boardmodel.detailpropertiesgrid','component.commonpanel','component.formcomponent',
 	'component.gridcomponent','component.barcomponent','component.linecomponent','component.piecomponent',
-	'core.trigger.TextTrigger', 'core.trigger.StyleTrigger', 'core.trigger.GridRenderTrigger', 'core.trigger.FormRenderTrigger'
+	'core.trigger.TextTrigger', 'core.trigger.StyleTrigger', 'core.trigger.GridRenderTrigger', 'core.trigger.FormRenderTrigger',
+	'boardmodel.modelbackupgrid'
     ],
     stores:['component'],
     init:function(){

+ 125 - 0
kanban-console/src/main/webapp/resources/app/view/boardmodel/modelbackupgrid.js

@@ -0,0 +1,125 @@
+Ext.define('erp.view.boardmodel.modelbackupgrid',{ 
+	extend: 'Ext.grid.Panel', 
+	alias:'widget.modelbackupgrid',
+	id:'modelbackupgrid',
+	layout: 'fit',
+	border: 0,
+	hideBorders: true, 
+	columnLines: true,
+	store: Ext.create('Ext.data.JsonStore',{
+		fields: ['code', 'description', 'createTime'],
+		data: []
+	}),
+	columns:[{
+		header: '备份时间',
+		flex: 1,
+		dataIndex: 'createTime',
+		renderer: function(value) {
+			return Ext.Date.format(new Date(value), 'Y-m-d H:i:s');
+		}
+	}, {
+		header: '备份描述',
+		dataIndex: 'description',
+		flex: 1
+	}],
+	tbar: [{
+		xtype: 'button',
+		text: '还原',
+		handler: function() {
+			var grid = Ext.getCmp('modelbackupgrid');
+			if(grid.getSelectionModel().getSelection().length == 0) {
+				return;
+			}
+			var selectData = grid.getSelectionModel().getSelection()[0].data;
+			var view = Ext.getCmp('modelbuilderpanel');
+			
+			Ext.Msg.confirm('确认', '确定还原到该备份?现有配置可能无法恢复!', function(btn) {
+                if(btn == 'yes') {
+                	view.getEl().mask('loading...');
+					Ext.Ajax.request({
+						url:'kanbanHistory/restore/' + selectData.code,
+						method:'POST',
+						callback:function(options,success,response){
+							var record = JSON.parse(response.responseText);
+							if(success) {
+								Ext.Ajax.request({
+									url:'kanban/get/' + modelCode,
+									method:'POST',
+									callback:function(options,success,response){
+										view.getEl().unmask();
+										var record = JSON.parse(response.responseText);
+										try {
+											view.modelRecord = record;
+											record.get = function(key) {
+												return this[key];
+											};
+											record.set = function(key, value) {
+												this[key] = value;
+											};
+											view.fireEvent('repaintcomponent', view, record);
+										}catch(e) {
+											Ext.Msg.alert(e.name, e.message)
+										}
+									}
+								});
+							}else {
+								showErrorMsg('失败', res.message);
+							}
+						}
+					});
+                }
+			});
+		}
+	}, {
+		xtype: 'button',
+		text: '删除',
+		handler: function() {
+			var grid = Ext.getCmp('modelbackupgrid');
+			if(grid.getSelectionModel().getSelection().length == 0) {
+				return;
+			}
+			var selectData = grid.getSelectionModel().getSelection()[0].data;
+			
+			Ext.Msg.confirm('确认', '确定删除该备份 ?', function(btn) {
+                if(btn == 'yes') {
+                	grid.getEl().mask('loading...');
+					Ext.Ajax.request({
+						url:'kanbanHistory/delete/' + selectData.code,
+						method:'POST',
+						callback:function(options,success,response){
+							grid.getEl().unmask();
+							var record = JSON.parse(response.responseText);
+							if(success) {
+								grid.loadGridData();
+							}else {
+								showErrorMsg('失败', res.message);
+							}
+						}
+					});
+                }
+            });
+		}
+	}],
+	listeners: {
+		afterrender: function() {
+			this.loadGridData();
+		}
+	},
+	loadGridData: function() {
+		var grid = this;
+		Ext.Ajax.request({
+			url:'kanbanHistory/get/byKanban/' + modelCode,
+			method:'POST',
+			callback:function(options,success,response){
+				if(response.responseText == '') return;
+				var res = JSON.parse(response.responseText);
+				if(success) {
+					res = res instanceof Array ? res : [res];
+					grid.getStore().loadData(res);
+				}else {
+					showErrorMsg('失败', res.message);
+				}
+			}
+		});
+	}
+});

+ 44 - 0
kanban-console/src/main/webapp/resources/app/view/boardmodel/modeleditpanel.js

@@ -54,6 +54,50 @@ Ext.define('erp.view.boardmodel.modeleditpanel',{
 				handler:function(){
 					me.importXml();
 				}
+			}, '->', {
+				xtype: 'button',
+				text: '添加备份',
+				handler: function() {
+					Ext.MessageBox.prompt("添加备份","请输入备份描述信息:",function(btn,txt){
+						if(btn == 'cancel') {
+							return;
+						}
+						me.el.mask('loading...');
+						Ext.Ajax.request({
+							url:'kanbanHistory/backup/byKanban/' + modelCode,
+							params: {
+								description: txt
+							},
+							method:'POST',
+							callback:function(options,success,response){
+								me.el.unmask();
+								if(response.responseText == '') return;
+								var res = JSON.parse(response.responseText);
+								if(success) {
+									showErrorMsg('成功', '备份成功!');
+								}else {
+									showErrorMsg('失败', res.message);
+								}
+							}
+						});
+					});
+				}
+			}, {
+				xtype: 'button',
+				text: '查看备份',
+				handler: function() {
+					Ext.create('Ext.window.Window', {
+						title: '备份记录',
+						width: 400,
+						height: 300,
+						layout: 'fit',
+						modal: true,
+						id: 'modelbackupwin',
+						items: [{
+							xtype: 'modelbackupgrid'
+						}]
+					}).show();
+				}
 			}]
 		});
 		me.callParent(arguments);