Hallo,
ich habe vor das Java-Applet des RT-Feldes gegen den Dojo dijit.editor zu ersetzten.
Ein schöner Nebeneffekt wäre, wenn dann die Reihenfolge von Text, Bildern und Formatierungen beibehalte würde, egal ob im Web oder Notes gespeichert wird.
Ich habe schon ein bisschen begonnen und bin soweit, dass der dijit Editor angezeigt wird. Alledings werden die Icons nicht richtig dargestellt...
Gibt es vieleicht schon irgentwelche Lösungen in diese Richtung? Denn man braucht nicht bis 8.x zu warten, weil man Dojo easy installieren und implementieren kann, nur die Geschichte mit RTF scheint komplexer zu sein.
Stand:
1. dojo 1.1.1 im root des Domino-Webservers kopiert
2. Im Formhead folgendes
"<style type=\"text/css\" media=\"all\">@Import \"../form.css?OpenCSSResource\";</style>"+ @NewLine+
"<style type=\"text/css\" media=\"all\">@Import \"/dojo111/dojo/resources/dojo.css\";</style>"+ @NewLine+
"<script type=\"text/javascript\" src=\"/dojo111/dojo/dojo.js\""+ @NewLine+
"djConfig=\"parseOnLoad: true\"></script>" + @NewLine+
"<script type=\"text/javascript\" src=\"/dojo111/dijit/dijit.js\"></script>"+ @NewLine+
"<script type=\"text/javascript\">"+ @NewLine+
"dojo.require(\"dijit.Editor\");"+ @NewLine+
"dojo.require(\"dojo.parser\");"+ @NewLine+
"</script>"
3. in den Html Eigenschaften des RT-Feldes unter Other:
Ergebnis: der dijit.editor wird im Web angezeigt, allerdings werden die Icons noch nicht richig angezeigt.
Ziel ist es eine Anzeige der RT-Inhalte so im Web darzustellen, wie im Notes-Client und umgekehrt.
Ein Problem das es zu lösen gilt ist wohl, dass der Notes-Client im RT-Format speichert und der Editor im HTML-Format.
Hat jemand Bock mit zu machen?
Grüße
Lisa
Ok,
ich habs jetzt hinbekommen, dass die dijit.Editor-Daten gespeichert werden.
über ein verstecktes RT-Feld welches wie folgt berechnet wird
dojoType="dijit.form.Textarea"
lade ich die Daten im onload Event hiermit
htmlString= dijit.byId('html_storage').getValue() ;
dijit.byId('html_editor').setValue( htmlString );
und onsubmit hiermit
htmlString= dijit.byId('html_editor').getValue() ;
dijit.byId('html_storage').setValue( htmlString );
hin und her.
Das 'dijit.Editor-Feld' dient dabei nur zum anzeigen und editieren und das 'dijit.form.Textarea-Feld' zum speichern
Läuft bis jetzt ganz gut.
Jetzt muss nur noch der gespeicherte html codierte Inhalt für den Notes Client ins RTF convertiert werden.
Wenn jemand ne Idee hat....
Grüße
Lisa
Man könnte das HTML -> RTF Problem ganz pragmatisch lösen indem man den html-content in einem file speichert und mit
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Call uidoc.GotoField("Body")
Call uidoc.Import("HTML File", "c:\temp\temp.htm")
End Sub
nach dem öffnen in das Notes-Client RT-Feld setzt.
Bis sich was eleganteres findet sollte es ausreichen.
Jetzt muss nur noch alles rund gemacht und getestet werden et voila... xxx€ gespart ;D
Mein Problem mit dem Richtext to html ist gelöst:
Mit einem verstecktem
<div dojoType="dijit.layout.ContentPane" class="box" hasShadow="false" id="cp1" onLoad="sethtml();" href="<Computed Value>"></div>
der ComputedValue berechnet sich so:
"/"+@WebDbName+"/v002/"+@Text(@DocumentUniqueID)+"/DasRTFeld?OpenField"
Somit wird das RT-Feld versteckt auf der Seite im Lesemode angezeigt und man kann mit
var shtml = dojo.byId('cp1').innerHTML
den entsprechenden html-code nehmen und mit
dijit.byId('html_editor').setValue( shtml );
in der Richtext-Editor packen um dann daran zu arbeiten.
Soweit so gut.
Das importieren der HTML-Datei im Notes-Client klappt auch schon sehr gut, bis auf Bilder.
Denn als bild-src steht folgendes im Quelltext:
src="https://xxxy.de/verzeichnis/xyzDB.nsf/0/9c4d3140ca656ccbc12574ea002a287d/DasRTFeld/0.E0?OpenElement&FieldElemFormat=gif"
Nach dem Import der HTML-Datei wird nur ein Platzhalter angezeigt.
Klar die DB ist Kennwort geschützt und daher kann das Bild nicht geladen werden.
Gibt es eine Möglichkeit die url so umzubauen, das sie auf das Bild im Doc zeigt, denn es ist ja als in-line-image im Doc gespeichert.
Wenn jemand noch andere Anregungen hat, dann immer her damit.
Also ich habe dieses "Problem" mit dem FCKeditor gehabt und etwas anders umwerkelt:
<compval1>[computed RT, name ="Body"]<compval2>
In den computed values steht:
1. <textarea name="Body">
2. </textarea>
Jeweils beim Lesen werfen die compvals "nichts" aus.
Und was das doppelte anzeigen angeht: Da gabs eine Render-HTML in Notes- Eigentschaft, aber ich weiss nicht wo...