예제 #1
0
    def _renderReSTTag(self, ctx, content, key, readonly):
        namer = self._namer(key)

        tag=T.invisible()
        ta=T.textarea(name=namer('content'), id=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 = iforms.IForm( ctx )
                srcId = keytocssid(namer('content'))
                previewDiv = srcId + ['-preview-div']
                frameId = srcId + ['-preview-frame']
                targetURL = widgetResourceURLFromContext(ctx, form.name).child(key).child( srcId )
                tag[T.br()]
                tag[T.button(onClick=["return Forms.Util.previewShow('",previewDiv,"', '",frameId,"', '",targetURL,"');"] )['Preview ...']]
                if self.withImagePicker:
                    tag[T.button(onclick=["return Cms.Forms.ImagePicker.popup('",srcId,"','tag')"])['Choose image ...']]

                if self.withItemSelection:
                    if self.itemSelectionTemplates:
                        itemSelectionTemplates = ','.join(self.itemSelectionTemplates)
                    else:
                        itemSelectionTemplates = ''
                    if self.itemSelectionTypes:
                        itemSelectionTypes = encodeTypes(self.itemSelectionTypes)
                    else:
                        itemSelectionTypes = ''
                    tag[T.button(onclick=["return Cms.Forms.ItemSelection.popupForReST('",srcId,"', '",itemSelectionTypes,"', 'rest')"])['Choose items ...']]

                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('%s');"%(previewDiv))['Close']
                    ]
                ]

        return tag
예제 #2
0
    def _renderTag(self, ctx, tparser, tvalue, namer, readonly):
        tag=T.invisible()
        if len(self.parsers) > 1:
            tp = T.select(name=namer('tparser'),id=render_cssid(namer('tparser')))
            if readonly:
                tp(class_='disabled', disabled='disabled')        
            
            for k,v in self.parsers:
                if k == tparser:
                    tp[T.option(selected='selected',value=k)[ v ]]
                else:
                    tp[T.option(value=k)[ v ]]
        else:
            tp = T.input(type='hidden',name=namer('tparser'),id=render_cssid(namer('tparser')),value=self.parsers[0][0])
        tag[tp]     
               
        if self.itemTypes is not None:
            tag[ T.input(type='hidden',class_="itemTypes",name=namer('itemTypes'),id=render_cssid(namer('itemTypes')),value=encodeTypes(self.itemTypes)) ]
        if self.itemTemplates is not None:
            tag[ T.input(type='hidden',class_="itemTemplates",name=namer('itemTemplates'),id=render_cssid(namer('itemTemplates')),value=','.join(self.itemTemplates)) ]

        ta=T.textarea(name=namer('tvalue'), id=render_cssid(namer('tvalue')), cols=self.cols, rows=self.rows)[tvalue or '']
        if readonly:
            ta(class_='readonly', readonly='readonly')
        tag[ [T.br,ta ]]
        return tag