From: <sv...@ze...> - 2007-09-28 12:55:14
|
Author: jstevens Date: 2007-09-28 08:55:16 -0400 (Fri, 28 Sep 2007) New Revision: 6860 Modified: trunk/Products/ZenModel/Collection.py trunk/Products/ZenModel/skins/zenmodel/editCollection.pt Log: * Multiple selections when Creating Collections works better * When adding to a Collection, selections from hidden lists are no longer added. Modified: trunk/Products/ZenModel/Collection.py =================================================================== --- trunk/Products/ZenModel/Collection.py 2007-09-28 12:31:52 UTC (rev 6859) +++ trunk/Products/ZenModel/Collection.py 2007-09-28 12:55:16 UTC (rev 6860) @@ -97,32 +97,37 @@ from CollectionItem import CollectionItem count = 0 - for i, devId in enumerate(deviceIds): - # If deviceIds then either - # len(deviceIds) == 1 and len(componentPaths) >= 0 or - # len(deviceIds) > 1 and len(componentPaths) == 0 - if len(deviceIds) > 1 or not componentPaths: - componentPaths = [''] - for cPath in componentPaths: + if itemType == 'devcomp': + for i, devId in enumerate(deviceIds): + # If deviceIds then either + # len(deviceIds) == 1 and len(componentPaths) >= 0 or + # len(deviceIds) > 1 and len(componentPaths) == 0 + if len(deviceIds) > 1 or not componentPaths: + componentPaths = [''] + for cPath in componentPaths: + self.createCollectionItem( + devId=devId, compPath=cPath, recurse=False) + count += 1 + if itemType == 'deviceClass': + for dClass in deviceClasses: self.createCollectionItem( - devId=devId, compPath=cPath, recurse=False) + orgPath='/Devices' + dClass, recurse=recurse) + count += 1 + if itemType == 'system': + for system in systems: + self.createCollectionItem( + orgPath='/Systems' + system, recurse=recurse) count += 1 - for dClass in deviceClasses: - self.createCollectionItem( - orgPath='/Devices' + dClass, recurse=recurse) - count += 1 - for system in systems: - self.createCollectionItem( - orgPath='/Systems' + system, recurse=recurse) - count += 1 - for group in groups: - self.createCollectionItem( - orgPath='/Groups' + group, recurse=recurse) - count += 1 - for loc in locations: - self.createCollectionItem( - orgPath='/Locations' + loc, recurse=recurse) - count += 1 + if itemType == 'group': + for group in groups: + self.createCollectionItem( + orgPath='/Groups' + group, recurse=recurse) + count += 1 + if itemType == 'location': + for loc in locations: + self.createCollectionItem( + orgPath='/Locations' + loc, recurse=recurse) + count += 1 if REQUEST: REQUEST['message'] = ' %s item%s added' % (count, Modified: trunk/Products/ZenModel/skins/zenmodel/editCollection.pt =================================================================== --- trunk/Products/ZenModel/skins/zenmodel/editCollection.pt 2007-09-28 12:31:52 UTC (rev 6859) +++ trunk/Products/ZenModel/skins/zenmodel/editCollection.pt 2007-09-28 12:55:16 UTC (rev 6860) @@ -18,43 +18,43 @@ <script type="text/javascript"> - function updateSelect(widget, current, options) { + function updateSelect(widget, options) { for (var i = widget.length; i < options.length; i++) { widget.options[i] = new Option(options[i],options[i], false, false); if (findValue(current, options[i]) > -1) widget.options[i].selected = true; } } - + + function getSelection(widget) { + var selection = new Array(); + for (var i=0; i < widget.options.length; i++) { + if (widget.options[i].selected) { + selection[selection.length] = widget.options[i].value; + } + } + return selection; + } + function getDeviceList(e) { var filter = document.getElementById('deviceFilter'); var widget = document.getElementById('deviceIds'); var url = '/zport/dmd/Devices/jsonGetDeviceNames' var d = loadJSONDoc(url, {'query': filter.value}); widget.options.length = 0; - d.addBoth(updateSelect, widget, currentDevices); + d.addBoth(updateSelect, widget); getComponentList(); } function getComponentList() { var deviceWidget = document.getElementById('deviceIds'); - var deviceId = null; - for (var i=0; i < deviceWidget.options.length; i++) { - if (deviceWidget.options[i].selected) { - if (deviceId == null) { - deviceId = deviceWidget.options[i].value; - } else { - deviceId = null; - break; - } - } - } var compWidget = document.getElementById('componentPaths'); + var deviceIds = getSelection(deviceWidget); compWidget.options.length = 0; - if (deviceId) { + if (deviceIds) { var url = '/zport/dmd/Devices/jsonGetComponentPaths'; - var d = loadJSONDoc(url, {'deviceIds': deviceWidget.value}); - d.addBoth(updateSelect, compWidget, currentComponents); + var d = loadJSONDoc(url, {'deviceIds': deviceIds}); + d.addBoth(updateSelect, compWidget); } } |