[dss-commits] r8890 - in dss/trunk: data/webroot/images data/webroot/js websrc/dss-setup-interface/dSS

dss-commits at forum.digitalstrom.org dss-commits at forum.digitalstrom.org
Fri Nov 6 17:10:36 CET 2009


Author: mfernandez
Date: 2009-11-06 17:10:36 +0100 (Fri, 06 Nov 2009)
New Revision: 8890

Added:
   dss/trunk/data/webroot/images/delete.png
Modified:
   dss/trunk/data/webroot/js/dss-setup-interface.js
   dss/trunk/websrc/dss-setup-interface/dSS/ZoneView.js
Log:
Added context menu with delete option for rooms

Added: dss/trunk/data/webroot/images/delete.png
===================================================================
--- dss/trunk/data/webroot/images/delete.png	                        (rev 0)
+++ dss/trunk/data/webroot/images/delete.png	2009-11-06 16:10:36 UTC (rev 8890)
@@ -0,0 +1,13 @@
+‰PNG
+
+   
+IHDR         óÿa   gAMA  ¯È7Šé   tEXtSoftware Adobe ImageReadyqÉe<  ]IDAT8Ë¥“ûKSaÇý[¶¢‰n„„QP˜ó2wÖÚܦγL[,biŽašAÅ\øC¨¥vÕÊ_2Ml”ZFjסå±òÒNMjmž³kÊ·¹`&.#záûËËûù¼<Ï“ å²æbV¯ÎPæ÷T3¥%¹I­†{Gª™qRiv•È…ë
+ætzâ#E±ß6„ˆ¼EddüÝÌJñª`Ÿ«ÅDRÁ2<]Nñ·;°4õѾ;ˆ¶Ûm>‡7›°8܏ɀQe6ÿLžI¬Ìèt‚ìæ®·c‰q!zñ|vü¶j„/Xi ¶ž@øÞ
+Ì%1|hŸû±l !ˆÁô|­‹®±ø!
+ïY#‚uºUáN’w]Á˼H3è„àu„	t]E´³>k%¾I“f¡’o«ÇR…‡D:“0åÚ`ä~¢|§
+øÓñ(rà¥
+áon„3oG0!˜$‹‚¡ÎV„ë
+ž*[W0_ª‚¿©ýâ-+‚‰ãµÖ d§ÁWÇ&2¾ZfMFô‰ÒVJpËiF&B°³
+>­ÞRɘ•gƒ- Ð~	CâmèÍÚ´ÒÄ×ERÁ
+áž«Ð p«5Þ°y•ø¨È+‹Á21ø¶ŒK—aw·h£`Õ ä#Šüôa×Zñ½ž†‡Tâ³ZoüåL¨óÑ“•ÊÇ`"é(?•ï'žÜËŽJváKµÞ†óñ|ª:†G9[—aöw8é2
+JwÄéf'±“y¿ëmæzsÓ˜žìTswæá_·ñ_óÒιIrþ    IEND®B`‚
\ No newline at end of file


Property changes on: dss/trunk/data/webroot/images/delete.png
___________________________________________________________________
Added: svn:executable
   + *

Modified: dss/trunk/data/webroot/js/dss-setup-interface.js
===================================================================
--- dss/trunk/data/webroot/js/dss-setup-interface.js	2009-11-05 17:24:10 UTC (rev 8889)
+++ dss/trunk/data/webroot/js/dss-setup-interface.js	2009-11-06 16:10:36 UTC (rev 8890)
@@ -119,6 +119,64 @@
 			},
 			this
 		);
+
+		this.on(
+			'contextmenu',
+			function(view, index, node, event) {
+				event.preventDefault();
+				event.stopEvent();
+				if(!this.contextMenu) {
+					this.contextMenu = new Ext.menu.Menu({});
+				} else {
+					this.contextMenu.removeAll();
+				}
+
+				var menuItem = new Ext.menu.Item({
+					text: 'Delete Room',
+					icon: '/images/delete.png',
+					handler: this.removeZone.createDelegate(this, index, true)
+				});
+				this.contextMenu.add(menuItem)
+				var xy = event.getXY();
+				this.contextMenu.showAt(xy);
+			},
+			this
+		);
+	},
+	removeZone: function(item, event, index) {
+		var record = this.getStore().getAt(index);
+		if(record.get('primary') == true) {
+			Ext.MessageBox.alert('Error', 'You cannot delete a primary room.');
+			return;
+		}
+		var deviceStore = this.findParentByType('dsszonebrowser').devicePanel.getStore();
+		if(deviceStore.query('zone', record.get('id')).getCount() > 0) {
+			Ext.MessageBox.alert('Error', 'You cannot delete a non empty room.');
+			return;
+		}
+
+		Ext.Ajax.request({
+			url: '/json/structure/removeZone',
+			disableCaching: true,
+			method: "GET",
+			scope: this,
+			params: { zoneID: record.get('id') },
+			success: function(result, request) {
+				try {
+					var jsonData = Ext.util.JSON.decode(result.responseText);
+					if(jsonData.ok) {
+						this.getStore().removeAt(index);
+					} else {
+						Ext.MessageBox.alert('Error', 'Could not remove room "' + record.get('name') + '"');
+					}
+				} catch (err) {
+						Ext.MessageBox.alert('Error', 'Could not move device "' + record.get('name') + '"');
+				}
+			},
+			failure: function(result, request) {
+				Ext.MessageBox.alert('Error', 'Could not remove room "' + record.get('name') + '"');
+			},
+		})
 	}
 });
 

Modified: dss/trunk/websrc/dss-setup-interface/dSS/ZoneView.js
===================================================================
--- dss/trunk/websrc/dss-setup-interface/dSS/ZoneView.js	2009-11-05 17:24:10 UTC (rev 8889)
+++ dss/trunk/websrc/dss-setup-interface/dSS/ZoneView.js	2009-11-06 16:10:36 UTC (rev 8890)
@@ -101,6 +101,64 @@
 			},
 			this
 		);
+		
+		this.on(
+			'contextmenu',
+			function(view, index, node, event) {
+				event.preventDefault();
+				event.stopEvent();
+				if(!this.contextMenu) {
+					this.contextMenu = new Ext.menu.Menu({});
+				} else {
+					this.contextMenu.removeAll();
+				}
+				
+				var menuItem = new Ext.menu.Item({
+					text: 'Delete Room',
+					icon: '/images/delete.png',
+					handler: this.removeZone.createDelegate(this, index, true)
+				});
+				this.contextMenu.add(menuItem)
+				var xy = event.getXY();
+				this.contextMenu.showAt(xy);
+			},
+			this
+		);
+	},
+	removeZone: function(item, event, index) {
+		var record = this.getStore().getAt(index);
+		if(record.get('primary') == true) {
+			Ext.MessageBox.alert('Error', 'You cannot delete a primary room.');
+			return;
+		}
+		var deviceStore = this.findParentByType('dsszonebrowser').devicePanel.getStore();
+		if(deviceStore.query('zone', record.get('id')).getCount() > 0) {
+			Ext.MessageBox.alert('Error', 'You cannot delete a non empty room.');
+			return;
+		}
+		
+		Ext.Ajax.request({
+			url: '/json/structure/removeZone',
+			disableCaching: true,
+			method: "GET",
+			scope: this,
+			params: { zoneID: record.get('id') },
+			success: function(result, request) {
+				try {
+					var jsonData = Ext.util.JSON.decode(result.responseText);
+					if(jsonData.ok) {
+						this.getStore().removeAt(index);
+					} else {
+						Ext.MessageBox.alert('Error', 'Could not remove room "' + record.get('name') + '"');
+					}
+				} catch (err) {
+						Ext.MessageBox.alert('Error', 'Could not move device "' + record.get('name') + '"');
+				}
+			},
+			failure: function(result, request) {
+				Ext.MessageBox.alert('Error', 'Could not remove room "' + record.get('name') + '"');
+			},
+		})
 	}
 });
 



More information about the dss-commits mailing list