[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Çý[¶¢nQPó2wÖÚܦγL[,biaAÅ\øC¨¥vÕÊ_2MlZFjסå±òÒNMjm³kÊ·¹`&.#záûËËûù¼<Ï å²æbV¯ÎPæ÷T3¥%¹I{GªqRivÈ
ë
+ætzâ#E±ß6¼EddüÝÌJñª`«ÅDRÁ2<]Nñ·;°4õѾ;¶Ûm>7°8ÜÉQe6ÿLI¬Ìètìæ®·cq!zñ|vü¶j/Xi ¶@øÞ
+Ì%1|hû±l !Áô|®±ø!
+ïY#uºUáNw]Á˼H3èàu t]E´³>k%¾If¡o«ÇR
D:0åÚ`ä~¢|§
+øÓñ(rà¥
+áon3oG0!$¡ÎVë
+*[W0_ª¿©ýâ-+ãµÖ d§ÁWÇ&2¾ZfMFôÒVJpËiF&B°³
+>ÞRÉg- Ð~ CâmèÍÚ´ÒÄ×ERÁ
+á«Ð p«5Þ°yø¨È+Á21ø¶Kaw·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