408 dvalue = html_escape(dvalue) |
408 dvalue = html_escape(dvalue) |
409 if entity.use_fckeditor(self.name): |
409 if entity.use_fckeditor(self.name): |
410 entity.req.fckeditor_config() |
410 entity.req.fckeditor_config() |
411 if with_format: |
411 if with_format: |
412 if entity.has_eid(): |
412 if entity.has_eid(): |
413 format = entity.format(self.name) |
413 format = entity.attribute_metadata(self.name, 'format') |
414 else: |
414 else: |
415 format = '' |
415 format = '' |
416 frname = eid_param(self.name + '_format', entity.eid) |
416 frname = eid_param(self.name + '_format', entity.eid) |
417 hidden = u'<input type="hidden" name="edits-%s" value="%s"/>\n'\ |
417 hidden = u'<input type="hidden" name="edits-%s" value="%s"/>\n'\ |
418 '<input type="hidden" name="%s" value="text/html"/>\n' % ( |
418 '<input type="hidden" name="%s" value="text/html"/>\n' % ( |
419 frname, format, frname) |
419 frname, format, frname) |
420 return u'%s<textarea cubicweb:type="wysiwyg" onkeypress="autogrow(this)" name="%s" %s>%s</textarea>' % ( |
420 return u'%s<textarea cubicweb:type="wysiwyg" onkeypress="autogrow(this)" name="%s" %s>%s</textarea>' % ( |
421 hidden, self.rname, self.format_attrs(), dvalue) |
421 hidden, self.rname, self.format_attrs(), dvalue) |
422 if with_format and entity.has_format(self.name): |
422 if with_format and entity.has_metadata(self.name, 'format'): |
423 fmtwdg = entity.get_widget(self.name + '_format') |
423 fmtwdg = entity.get_widget(self.name + '_format') |
424 fmtwdgstr = fmtwdg.edit_render(entity, tabindex=self.attrs['tabindex']) |
424 fmtwdgstr = fmtwdg.edit_render(entity, tabindex=self.attrs['tabindex']) |
425 self.attrs['tabindex'] = entity.req.next_tabindex() |
425 self.attrs['tabindex'] = entity.req.next_tabindex() |
426 else: |
426 else: |
427 fmtwdgstr = '' |
427 fmtwdgstr = '' |
465 class FileWidget(Widget): |
465 class FileWidget(Widget): |
466 need_multipart = True |
466 need_multipart = True |
467 def _file_wdg(self, entity): |
467 def _file_wdg(self, entity): |
468 wdgs = [u'<input type="file" name="%s" %s/>' % (self.rname, self.format_attrs())] |
468 wdgs = [u'<input type="file" name="%s" %s/>' % (self.rname, self.format_attrs())] |
469 req = entity.req |
469 req = entity.req |
470 if entity.has_format(self.name) or entity.has_text_encoding(self.name): |
470 if entity.has_metadata(self.name, 'format') or entity.has_metadata(self.name, 'encoding'): |
471 divid = '%s-%s-advanced' % (self.name, entity.eid) |
471 divid = '%s-%s-advanced' % (self.name, entity.eid) |
472 wdgs.append(u'<a href="%s" title="%s"><img src="%s" alt="%s"/></a>' % |
472 wdgs.append(u'<a href="%s" title="%s"><img src="%s" alt="%s"/></a>' % |
473 (html_escape(toggle_action(divid)), |
473 (html_escape(toggle_action(divid)), |
474 req._('show advanced fields'), |
474 req._('show advanced fields'), |
475 html_escape(req.build_url('data/puce_down.png')), |
475 html_escape(req.build_url('data/puce_down.png')), |
507 ', or edit file content online with the widget below.') |
507 ', or edit file content online with the widget below.') |
508 return msg |
508 return msg |
509 |
509 |
510 def _edit_render(self, entity): |
510 def _edit_render(self, entity): |
511 wdgs = [self._file_wdg(entity)] |
511 wdgs = [self._file_wdg(entity)] |
512 if entity.format(self.name) in ('text/plain', 'text/html', 'text/rest'): |
512 if entity.attribute_metadata(self.name, 'format') in ('text/plain', 'text/html', 'text/rest'): |
513 msg = self._edit_msg(entity) |
513 msg = self._edit_msg(entity) |
514 wdgs.append(u'<p><b>%s</b></p>' % msg) |
514 wdgs.append(u'<p><b>%s</b></p>' % msg) |
515 twdg = TextWidget(self.vreg, self.subjtype, self.rschema, self.objtype) |
515 twdg = TextWidget(self.vreg, self.subjtype, self.rschema, self.objtype) |
516 twdg.rname = self.rname |
516 twdg.rname = self.rname |
517 data = getattr(entity, self.name) |
517 data = getattr(entity, self.name) |
518 if data: |
518 if data: |
519 encoding = entity.text_encoding(self.name) |
519 encoding = entity.attribute_metadata(self.name, 'encoding') |
520 try: |
520 try: |
521 entity[self.name] = unicode(data.getvalue(), encoding) |
521 entity[self.name] = unicode(data.getvalue(), encoding) |
522 except UnicodeError: |
522 except UnicodeError: |
523 pass |
523 pass |
524 else: |
524 else: |