1
2
3
4
5
6
7
8
9
10
11 from Products.ZenModel.ZenModelRM import ZenModelRM
12 from Products.Zuul.utils import ZuulMessageFactory as _t
13 from copy import deepcopy
14
16 """
17 Container for various settings on the User Interface. This is
18 serialized and sent down to the server on every page request. Any
19 user configurable settings that apply to the user interface should
20 be added here
21 """
22
23 _relations = ()
24
25 _properties = (
26 {'id': 'enableLiveSearch', 'type': 'boolean', 'mode': 'w'},
27 {'id': 'incrementalTreeLoad', 'type': 'boolean', 'mode': 'w'},
28 {'id': 'enableTreeFilters', 'type': 'boolean', 'mode': 'w'},
29 {'id': 'deviceGridBufferSize', 'type': 'int', 'mode': 'w'},
30 {'id': 'componentGridBufferSize', 'type': 'int', 'mode': 'w'},
31 {'id': 'eventConsoleBufferSize', 'type': 'int', 'mode': 'w'},
32 {'id': 'deviceMoveJobThreshold', 'type': 'int', 'mode': 'w'},
33 {'id': 'zenjobsRefreshInterval', 'type' : 'int', 'mode':'w'},
34 )
35
36
37 _propertyMetaData = {
38 'enableLiveSearch': {'xtype': 'checkbox', 'name': _t('Enable Live Filters'), 'defaultValue': False},
39 'incrementalTreeLoad': {'xtype': 'checkbox', 'name': _t('Enable Incremental Tree Loading on the Infrastructure Page'), 'defaultValue': True},
40 'enableTreeFilters': {'xtype': 'checkbox', 'name': _t('Enable Tree Filters'), 'defaultValue': True},
41 'deviceGridBufferSize': {'xtype': 'numberfield', 'name': _t('Device Grid Buffer Size'), 'defaultValue': 100, 'minValue': 50, 'maxValue': 1000, 'allowBlank': False},
42 'componentGridBufferSize': {'xtype': 'numberfield', 'name': _t('Component Grid Buffer Size'), 'defaultValue': 50, 'minValue': 25, 'maxValue': 1000, 'allowBlank': False},
43 'eventConsoleBufferSize': {'xtype': 'numberfield', 'name': _t('Event Console Buffer Size'), 'defaultValue': 200, 'minValue': 50, 'maxValue': 1000, 'allowBlank': False},
44 'deviceMoveJobThreshold': {'xtype': 'numberfield', 'name': _t('Device Move Job Threshold'), 'defaultValue': 5, 'minValue': 0, 'allowBlank': False},
45 'zenjobsRefreshInterval': {'xtype': 'numberfield', 'name': _t('Job Notification Refresh Interval (seconds)'), 'defaultValue' : 5, 'minValue' : 1, 'maxValue': 300, 'allowBlank': False},
46 }
47
49 """
50 @rtype: Dictionary
51 @return Key/Value pair of all settings for the UserInterface
52 """
53 settings = {}
54 for prop in self.getSettingsData():
55 propId = prop['id']
56 settings[propId] = prop['value']
57 return settings
58
60 """
61 @rtype: Dictionary
62 @return: The value of the settings along with some meta information
63 for display
64 """
65 settings = deepcopy(self._properties)
66 for prop in settings:
67 prop.update(self._propertyMetaData[prop['id']])
68 prop['value'] = getattr(self, prop['id'], prop['defaultValue'])
69 return settings
70