From 58fda446ff09e02e83826939789591a904a526d2 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 3 Jan 2013 19:41:32 +0100 Subject: [PATCH] use HTML fields for agenda item description, discussion, consequences; provide fixes and additions for editing and presentation of this --- browser/common.py | 1 + browser/form_macros.pt | 20 +++++++++----------- browser/loops.js | 16 ++++++++++++++++ expert/field.py | 5 +++++ interfaces.py | 8 +++++++- locales/de/LC_MESSAGES/loops.mo | Bin 20723 -> 20888 bytes locales/de/LC_MESSAGES/loops.po | 6 ++++++ organize/interfaces.py | 22 ++++++++++++++++------ organize/work/report.py | 8 ++++---- 9 files changed, 64 insertions(+), 22 deletions(-) diff --git a/browser/common.py b/browser/common.py index 6fd3e15..5c51a59 100644 --- a/browser/common.py +++ b/browser/common.py @@ -843,6 +843,7 @@ class BaseView(GenericView, I18NView): def registerDojoFormAll(self): self.registerDojo() + self.registerDojoEditor() cm = self.controller.macros jsCall = ('dojo.require("dijit.form.Form"); ' 'dojo.require("dijit.form.DateTextBox"); ' diff --git a/browser/form_macros.pt b/browser/form_macros.pt index 0717f97..2f7f7ed 100644 --- a/browser/form_macros.pt +++ b/browser/form_macros.pt @@ -323,17 +323,15 @@ -

HTML

-
+
diff --git a/browser/loops.js b/browser/loops.js index 7a86dfa..4be35a5 100644 --- a/browser/loops.js +++ b/browser/loops.js @@ -211,6 +211,22 @@ function closeDialog(save) { } function closeDataWidget(save) { + form = dojo.byId('dialog_form'); + dojo.query('.dijitEditor').forEach(function(item, index) { + console.log(item); + var name = item.id; + var widget = dijit.byId(name); + value = widget.getValue(); + var ta = document.createElement('input'); + ta.type = 'hidden'; + ta.name = name; + ta.value = value; + form.appendChild(ta); + }); +} + + +function xx_closeDataWidget(save) { var widget = dijit.byId('data'); if (widget != undefined && save) { value = widget.getValue(); diff --git a/expert/field.py b/expert/field.py index ff813cb..5006d02 100644 --- a/expert/field.py +++ b/expert/field.py @@ -59,6 +59,11 @@ class TextField(Field): return text +class HtmlTextField(Field): + + format = 'text/html' + + class DecimalField(Field): format = 'decimal' diff --git a/interfaces.py b/interfaces.py index a552743..1330a6a 100644 --- a/interfaces.py +++ b/interfaces.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2012 Helmut Merz helmutm@cy55.de +# Copyright (c) 2013 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ from zope.app.file.interfaces import IImage as IBaseAsset from zope.component.interfaces import IObjectEvent from zope.size.interfaces import ISized +from cybertools.composer.schema.interfaces import FieldType from cybertools.relation.interfaces import IDyadicRelation from cybertools.tracking.interfaces import ITrackingStorage from cybertools.util.format import toStr, toUnicode @@ -37,6 +38,11 @@ from loops import util from loops.util import _ +class HtmlText(schema.Text): + + __typeInfo__ = ('html',) + + # common interfaces class ILoopsObject(Interface): diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index cd4873b7e387690532a25e8a46573a1ef7990d3a..3b725e528c819d0b702419d7b93b39da8a808a7d 100644 GIT binary patch delta 8001 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 delta 7904 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 wjm{x1B|na+KzapsBEBciT<5M?TPZ(h&ap