Пример #1
0
 def output(self):
     return flatten(T.html[
         T.head[T.script(type="text/javascript", src="wz_jsgraphics.js")],
         T.body(bgcolor="#cdcdb4")[T.script(
             type="text/javascript")["var jg = new jsGraphics();",
                                     self.draw_cmds, "jg.paint();", ],
                                   self.html_cmds]])
Пример #2
0
    def __init__(self, ctx, restWriter, key, srcId):
        self.restWriter = restWriter

        form = iformal.IForm(ctx)
        u = widgetResourceURLFromContext(
            ctx, form.name).child(key).child(srcId).child('_submit')
        self.destId = srcId + '-dest'
        formId = srcId + '-form'

        stan = T.html(
        )[T.head()[T.script(type="text/javascript")["""
                function ReSTTranslate() {
                    dest = document.getElementById('%(destId)s');
                    form = document.getElementById('%(formId)s');
                    src = parent.document.getElementById('%(srcId)s');
                    dest.value = src.value;
                    form.submit(); 
                }    

                """ %
                                                    {
                                                        'srcId': srcId,
                                                        'destId': self.destId,
                                                        'formId': formId
                                                    }]],
          T.body(
          )[T.form(id=formId, method="POST", action=u
                   )[T.input(type="hidden", name=self.destId, id=self.destId)],
            T.script(type="text/javascript")["ReSTTranslate();"], ], ]

        self.docFactory = loaders.stan(stan)
Пример #3
0
    def doRendering(self, fragmentClass):
        """
        Verify that the given fragment class will render without raising an
        exception.
        """
        siteStore = Store()

        loginSystem = LoginSystem(store=siteStore)
        installOn(loginSystem, siteStore)
        p = Product(
            store=siteStore, types=["xmantissa.webadmin.LocalUserBrowser", "xmantissa.signup.SignupConfiguration"]
        )
        account = loginSystem.addAccount(u"testuser", u"localhost", None)
        p.installProductOn(account.avatars.open())
        f = fragmentClass(None, u"testuser", account)

        p = LivePage(docFactory=stan(html[head(render=directive("liveglue")), body(render=lambda ctx, data: f)]))
        f.setFragmentParent(p)

        ctx = WovenContext()
        req = FakeRequest()
        ctx.remember(req, IRequest)

        d = p.renderHTTP(ctx)

        def rendered(ign):
            p.action_close(None)

        d.addCallback(rendered)
        return d
Пример #4
0
class Uploader(formrender.Form):
	"""A renderer allowing for updates to individual records using file upload.

	This renderer exposes a form with a file widget.	It is likely that
	the interface will change.
	"""

	name = "upload"

	def render_uploadInfo(self, ctx, data):
		if data is None:
			return T.invisible()
		else:
			for key, val in data.original.getPrimaryTable().rows[0].iteritems():
				ctx.tag.fillSlots(key, str(val))
			return ctx.tag

	docFactory = loaders.stan(T.html[
		T.head[
			T.title["Upload"],
			T.invisible(render=T.directive("commonhead")),
		],
		T.body(render=T.directive("withsidebar"))[
			T.h1(render=T.directive("meta"))["title"],
			T.p(class_="procMessage", data=T.directive("result"), 
					render=T.directive("uploadInfo"))[
				T.slot(name="nAffected"),
				" record(s) modified."
			],
			T.invisible(render=T.directive("form genForm"))
		]
	])
Пример #5
0
    def doRendering(self, fragmentClass):
        """
        Verify that the given fragment class will render without raising an
        exception.
        """
        siteStore = Store()

        loginSystem = LoginSystem(store=siteStore)
        installOn(loginSystem, siteStore)
        p = Product(store=siteStore, types=["xmantissa.webadmin.LocalUserBrowser",
                                            "xmantissa.signup.SignupConfiguration"])
        account = loginSystem.addAccount(u'testuser', u'localhost', None)
        p.installProductOn(account.avatars.open())
        f = fragmentClass(None, u'testuser', account)

        p = LivePage(
            docFactory=stan(
                html[
                    head(render=directive('liveglue')),
                    body(render=lambda ctx, data: f)]))
        f.setFragmentParent(p)

        ctx = WovenContext()
        req = FakeRequest()
        ctx.remember(req, IRequest)

        d = p.renderHTTP(ctx)
        def rendered(ign):
            p.action_close(None)
        d.addCallback(rendered)
        return d
Пример #6
0
 def speed(self, speed):
     return rend.Page(
         docFactory=loaders.stan(
             tags.html[
                 tags.body(id='body')[
                     "Thanks for taking our survey! You said: %r %r %r" % (
                         self.original[0], self.original[1], speed)]]))
Пример #7
0
        def __init__(self, ctx, restWriter, key, srcId):
            self.restWriter = restWriter

            form = iformal.IForm( ctx )
            u = formal_widgetResourceURLFromContext(ctx, form.name).child(key).child( srcId ).child('_submit')
            self.destId=srcId + '-dest'
            formId=srcId + '-form'

            stan = T.html()[
                T.head()[
                    T.script(type="text/javascript")["""
                    function ReSTTranslate() {
                        dest = document.getElementById('%(destId)s');
                        form = document.getElementById('%(formId)s');
                        src = parent.document.getElementById('%(srcId)s');
                        dest.value = src.value;
                        form.submit();
                    }

                    """%{'srcId':srcId, 'destId':self.destId, 'formId':formId}]
                ],
                T.body()[
                    T.form(id=formId, method="POST", action=u)[
                        T.input(type="hidden", name=self.destId, id=self.destId)
                    ],
                    T.script(type="text/javascript")["ReSTTranslate();"],
                ],
            ]

            self.docFactory = loaders.stan(stan)
Пример #8
0
 def test_tagWithRender(self):
     render = lambda c, d: 'body'
     result = ten.precompile(tags.html[tags.body(render=render)])
     prelude, dynamic, postlude = result
     self.assertEqual(prelude, '<html>')
     self.assertEqual(dynamic.tag.render, render)
     self.assertEqual(postlude, '</html>')
     self.assertEqual(ten.flatten(result), '<html>body</html>')
Пример #9
0
class ReSTPreview(rend.Page):
    def __init__(self, ctx, restWriter, key, srcId):
        self.restWriter = restWriter

        form = iformal.IForm(ctx)
        u = widgetResourceURLFromContext(
            ctx, form.name).child(key).child(srcId).child('_submit')
        self.destId = srcId + '-dest'
        formId = srcId + '-form'

        stan = T.html(
        )[T.head()[T.script(type="text/javascript")["""
                function ReSTTranslate() {
                    dest = document.getElementById('%(destId)s');
                    form = document.getElementById('%(formId)s');
                    src = parent.document.getElementById('%(srcId)s');
                    dest.value = src.value;
                    form.submit(); 
                }    

                """ %
                                                    {
                                                        'srcId': srcId,
                                                        'destId': self.destId,
                                                        'formId': formId
                                                    }]],
          T.body(
          )[T.form(id=formId, method="POST", action=u
                   )[T.input(type="hidden", name=self.destId, id=self.destId)],
            T.script(type="text/javascript")["ReSTTranslate();"], ], ]

        self.docFactory = loaders.stan(stan)

    def child__submit(self, ctx):
        args = inevow.IRequest(ctx).args
        value = args.get(self.destId, [''])[0]

        from docutils.utils import SystemMessage

        try:
            if self.restWriter:
                restValue = self._html_fragment(value, writer=self.restWriter)
            else:
                restValue = self._html_fragment(value, writer_name='html')
        except SystemMessage, e:
            restValue = str(e)

        stan = T.html()[T.head()[T.style(type="text/css")["""
                
                    .system-message {border: 1px solid red; background-color: #FFFFDD; margin: 5px; padding: 5px;}
                    .system-message-title { font-weight: bold;}
                """]],
                        T.body()[T.div()[T.xml(restValue)]], ]

        self.docFactory = loaders.stan(stan)

        return self
Пример #10
0
class MyPage(athena.LivePage):
    addSlash = True
    docFactory = loaders.stan(T.html[T.head(render=T.directive('liveglue')),
                                     T.body(render=T.directive('myElement'))])

    def render_myElement(self, ctx, data):
        f = MyElement()
        f.setFragmentParent(self)
        return ctx.tag[f]
Пример #11
0
 def test_tagWithRender(self):
     render = lambda c, d: 'body'
     result = ten.precompile(
         tags.html[
             tags.body(render=render)])
     prelude, dynamic, postlude = result
     self.assertEquals(prelude, '<html>')
     self.assertEquals(dynamic.tag.render, render)
     self.assertEquals(postlude, '</html>')
     self.assertEquals(ten.flatten(result), '<html>body</html>')
Пример #12
0
 def getTemplate(self, resultFormat):
     if resultFormat in self.service.templates:
         return self.service.getTemplate(resultFormat)
     return common.doctypedStan(T.html[
         T.head(render=T.directive("commonhead"))[T.title(
             render=T.directive("meta"))['title'], ],
         T.body(render=T.directive("withsidebar"))[
             T.h1(render=T.directive("meta"))['title'],
             T.div(class_="result", data=T.directive("result"))[T.invisible(
                 render=T.directive(resultFormat))]]])
Пример #13
0
 class Page1(Base):
     docFactory = loaders.stan(
         html[
             body(render=directive('foo'))[
                 p(macro=directive('content'))
             ]
         ])
         
     def render_foo(self, ctx, data):
         return ctx.tag
Пример #14
0
 def output(self):
     return flatten(
         T.html[
           T.head[T.script(type="text/javascript", src="wz_jsgraphics.js")],
           T.body(bgcolor="#cdcdb4")[
             T.script(type="text/javascript")[
                  "var jg = new jsGraphics();",
                  self.draw_cmds,
                  "jg.paint();",
                  ],
             self.html_cmds
         ]])
Пример #15
0
    def test_precompilePrecompiled(self):
        def render_same(context, data):
            return context.tag

        doc = tags.html[tags.body(
            render=render_same,
            data={'foo': 5})[tags.p["Hello"],
                             tags.p(data=tags.directive('foo'))[str]]]
        result1 = self.render(doc, precompile=True)
        result2 = self.render(result1, precompile=True)
        rendered = self.render(result2)
        self.assertEquals(rendered,
                          "<html><body><p>Hello</p><p>5</p></body></html>")
Пример #16
0
 def test_precompilePrecompiled(self):
     def render_same(context, data):
         return context.tag
     doc = tags.html[
         tags.body(render=render_same, data={'foo':5})[
             tags.p["Hello"],
             tags.p(data=tags.directive('foo'))[
                 str
             ]
         ]
     ]
     result1 = self.render(doc, precompile=True)
     result2 = self.render(result1, precompile=True)
     rendered = self.render(result2)
     self.assertEquals(rendered, "<html><body><p>Hello</p><p>5</p></body></html>")
Пример #17
0
    def test_rendering(self):
        """
        Test that L{webadmin.UserInteractionFragment} renders without raising
        any exceptions.
        """
        f = UserInteractionFragment(self.browser)

        p = LivePage(docFactory=stan(html[head(render=directive("liveglue")), body(render=lambda ctx, data: f)]))
        f.setFragmentParent(p)

        ctx = WovenContext()
        req = FakeRequest()
        ctx.remember(req, IRequest)

        d = p.renderHTTP(ctx)

        def rendered(ign):
            p.action_close(None)

        d.addCallback(rendered)
        return d
Пример #18
0
class ResultPage(athena.LivePage):
    addSlash = True
    source = None
    CSS = open(basedir+'/ajaxpb.css').read()
    start = CSS.find('height', CSS.find('resultOut'))
    stop = CSS.find('\n', start)
    css = CSS[:start]+'height: 30em;\n'+CSS[stop:]
    docFactory = loaders.stan(tags.html[
        tags.head(render=tags.directive('liveglue')),
        tags.style(type="text/css")[css],
        tags.body(render=tags.directive('resultElement'))])
    
    def __init__(self, source):
        athena.LivePage.__init__(self)
        self.source = source
    
    def render_resultElement(self, ctx, data):
        f = ResultElement()
        f.setFragmentParent(self)
        reactor.callLater(1, self.source.addGatherer, f)
        return ctx.tag[f]
Пример #19
0
class NotebookPage(athena.LivePage):
    addSlash = True
    docFactory = loaders.stan(
        tags.html[tags.head(
            render=tags.directive('liveglue')
        )[tags.title["IPython Notebook"],
          tags.link(href="notebook.css", rel="stylesheet", type="text/css"), ],
                  tags.body(render=tags.directive('widget'))])

    def __init__(self, controller):
        athena.LivePage.__init__(self)
        self.controller = controller
        if self.children is None:
            self.children = {}
        self.children["notebook.css"] = static.File(
            util.sibpath(__file__, 'notebook.css'))

    def render_widget(self, ctx, data):
        w = aw.NotebookWidget(self.controller)
        w.setFragmentParent(self)
        return ctx.tag[w]
Пример #20
0
    def test_rendering(self):
        """
        Test that L{webadmin.UserInteractionFragment} renders without raising
        any exceptions.
        """
        f = UserInteractionFragment(self.browser)

        p = LivePage(
            docFactory=stan(
                html[
                    head(render=directive('liveglue')),
                    body(render=lambda ctx, data: f)]))
        f.setFragmentParent(p)

        ctx = WovenContext()
        req = FakeRequest()
        ctx.remember(req, IRequest)

        d = p.renderHTTP(ctx)
        def rendered(ign):
            p.action_close(None)
        d.addCallback(rendered)
        return d
Пример #21
0
class Benchmark(athena.LivePage):
    docFactory = loaders.stan(
        tags.html[tags.head(render=tags.directive('liveglue')),
                  tags.body(render=tags.directive('body'))])

    def __init__(self, maxNodes, maxDepth):
        self.maxNodes = maxNodes
        self.maxDepth = maxDepth
        super(Benchmark, self).__init__()

        here = filepath.FilePath(__file__).parent().child('benchmark.js')

        self.jsModules.mapping.update({'Nevow.Benchmarks': here.path})

    def render_body(self, ctx, data):
        for j in range(self.maxNodes // self.maxDepth):
            top = t = tags.div()
            for i in range(self.maxDepth):
                m = tags.div()
                t[m]
                t = m
            t[InitializationBenchmark(self)]
            yield top
Пример #22
0
 def child_postTarget(self, ctx):
     return rend.Page(
         docFactory=loaders.stan(
             tags.html[tags.body(id="body")[str(ctx.arg('blah'))]]))
Пример #23
0
 def child_postTarget(self, ctx):
     return rend.Page(
         docFactory=loaders.stan(
             tags.html[tags.body(id="body")[str(ctx.arg('blah'))]]))
Пример #24
0
 def test_dynamic(self):
     self.assertEquals(
         ten.flatten(
             tags.html[
                 tags.body(render=lambda c, d: 'body!')]),
         '<html>body!</html>')
Пример #25
0
 def speed(self, speed):
     return rend.Page(docFactory=loaders.stan(tags.html[tags.body(
         id='body')["Thanks for taking our survey! You said: %r %r %r" %
                    (self.original[0], self.original[1], speed)]]))
Пример #26
0
            test = loaders.xmlstr(xml, ignoreDocType=True).load() 
        except Exception, e:
            restValue = "HTML Validation Error: please check any raw HTML blocks."

        stan = T.html()[
            T.head()[
                T.style(type="text/css")["""

                    .system-message {border: 1px solid red; background-color: #FFFFDD; margin: 5px; padding: 5px;}
                    .system-message-title { font-weight: bold;}
                """
                ]
            ],
            T.body()[
                T.div()[
                    T.xml(restValue)
                ]
            ],
        ]

        self.docFactory = loaders.stan(stan)

        return self

    def _html_fragment(self, input_string, writer=None, writer_name=None):
        return restsupport.htmlFragment(input_string, writer=writer, writer_name=writer_name)

registerAdapter(converters.NullConverter, RichText, IRichTextConvertible)
registerAdapter(RichTextArea, RichText, iforms.IWidget)