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)
def _renderReSTTag(self, ctx, content, key, readonly): namer = self._namer(key) tag=T.invisible() ta=T.textarea(name=namer('content'), id=formal_keytocssid(namer('content')), cols=self.cols, rows=self.rows)[content or ''] if readonly: ta(class_='readonly', readonly='readonly') tag[ta] if not readonly: try: import docutils except ImportError: raise else: form = iformal.IForm( ctx ) srcId = formal_keytocssid(namer('content')) previewDiv = srcId + '-preview-div' frameId = srcId + '-preview-frame' targetURL = formal_widgetResourceURLFromContext(ctx, form.name).child(key).child( srcId ) tag[T.br()] tag[T.button(onClick="return Forms.Util.previewShow('%s', '%s', '%s');"%(previewDiv, frameId, targetURL))['Preview ...']] if self.withImagePicker: tag[T.button(onclick=["return Cms.Forms.ImagePicker.popup('",srcId,"','tag')"])['Choose image ...']] tag[T.div(id=previewDiv, class_="preview-hidden")[ T.iframe(class_="preview-frame", name=frameId, id=frameId), T.br(), T.button(onClick=["return Forms.Util.previewHide('",previewDiv,"');"])['Close'] ] ] return tag