1
2
3
4
5
6
7
8
9
10
11 import zope.component
12 from zope.interface import Interface
13 from zope.viewlet.metaconfigure import viewletDirective
14 from zope.publisher.interfaces.browser import IBrowserView
15 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
16 from zope.viewlet.viewlet import ViewletBase
17 try:
18 from Products.Five.browser.metaconfigure import page
19 except ImportError:
20 from zope.publisher.browser.viewmeta import page
21
22 from Products.ZenUtils.extdirect.router import DirectProviderDefinition
23
24 from interfaces import IExtDirectJavaScriptManager, IJsonApiJavaScriptManager
25
31
38
39
40 -def directRouter(_context, name, class_, namespace=None, for_=Interface,
41 layer=IDefaultBrowserLayer, timeout="180000",
42 permission='zenoss.Common'):
43
44
45 page(_context, name, permission, for_, layer, class_=class_)
46
47
48 definition = DirectProviderDefinition(class_, name, timeout, namespace)
49
50 source = definition.render()
51 viewletclass = JavaScriptSourceViewlet(source)
52 viewletDirective(_context, name, 'zope2.Public', for_, layer, manager=IExtDirectJavaScriptManager, class_=viewletclass)
53
54 jsonapi_source = definition.render_jsonapi()
55 jsonapi_viewletclass = JavaScriptSourceViewlet(jsonapi_source)
56 viewletDirective(_context, name, 'zope2.Public', for_, layer, manager=IJsonApiJavaScriptManager, class_=jsonapi_viewletclass)
57