TIMETOWEB Blog

Archiv

TechInfo

Fehler in DQ mit Kategorien zum Aufklappen

By Dirk Bergles

Eigentlich sollte der Fehler, daß Kategorien mit einem \ nicht korrekt in einen Link eingebaut werden, bereits seit 7.60 2 behoben sein.
Hier ist der Blogbeitrag dazu.

Aber irgendwie scheint der Bugfix nicht vollständig in die 6.20 eingeflosssen zu sein.
Es fehlen gleich an mehreren Stellen Änderungen in Scriptlibraries.

Der Weg die Änderung rückgängig zu machen und damit den Fehler, der durch die Fehlerbehebung erst entstanden ist, wieder zu beheben ist recht einfach.

In der Script-Library "XTT_BuildPageHandler" finden sich folgende Zeilen (588):
' $CATEGORYEXPANDLINK and $CATEGORYCOLLAPSELINK
' DBE 18.01.2009 Bugfix #2377
expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPath)
collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCatUnEsc)
' expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPathEsc)
' collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCat)

Sinngemäß müßte daraus gemacht werden
' $CATEGORYEXPANDLINK and $CATEGORYCOLLAPSELINK
' DBE 18.01.2009 Bugfix #2377
' DBE 03.04.2009 remove the changes, because the bugfix was not fully implemented (some methods in SWM_Error and changes in XTT_DataSourceEntries are lost)
' expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPath)
' collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCatUnEsc)
expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPathEsc)
collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCat)

Dadurch werden die Expand. und Collapselinks wieder mit dem \\, bzw. %5c ersetzt.
In der 7.60 4 ist diese Änderung drin. Davor müßte sie kundenspezifisch eingebaut werden. Im timetoweb.de ist es ebenfalls eingebaut, weil es mit dem nächsten Update sowieso reinkommt.
Ab 7.70 0 ist der Bugfix komplett und dort funktioniert die Fehlerbehebung.

Archiv

TechInfo

Zugriffsrechte für ContentMaster

By Dirk Bergles

Wir sind dazu übergegangen dem ContentMaster generell nur noch Autorenrechten zu geben. Damit ist die tatsächliche Steuerung der Zugriffsrechte einfacher und auch sicherer.
Durch diese Umstellung trat aber nun ein Fehler auf.
Da "früher" das Autorenfeld nach der Freigabe gelöscht wurde, der ContentMaster war ja Editor, wurde beim Schreibzugriff einfach geprüft ob der User ein Autor ist. Ist er ein Autor, wurde abgebrochen und einfach Domino die Prüfung überlassen, denn das Autorenfeld war für freigegebene Dokumente ja leer.

Nun aber muß der ContentMaster zwingend als Autor eingetragen sein, denn er hat das Dokument freigegeben, muß es auch wieder archivieren können und auch editieren dürfen.

Damit darf aber ein ContentMaster automatisch alle freigegebenen Dokumente bearbeiten. Denn er ist Autor und steht in jedem freigegebenen Dokument in AuthorRights.

Die sofortige Änderung für diesen Fehler sieht nun vor, das die erste Prüfung einmal auf Autor und keine Rolle [ContentMaster] prüft.
Anschließend wird wieder nach Standard verfahren und die ApprovalRights analysiert und entsprechend reagiert.

Dabei gab es einen weiteren Fehler, denn im weiteren Verlauf wurde einem Autor, sofern er denn, durch welche Gründe auch immer, im Autorenfeld "AuthorRights" steht, erlaubt zu speichern.
Das Feld AuthorRights wird aber berechnet. Eine sinnvolle Nutzung könnte eigentlich nur durch das Feld AddAuthorRights erfolgen.
Daher wurde bei dieser Prüfung das Feld AuthorRights durch AddAuthorRights ersetzt. Damit kann nun auch der Editmode verhindert werden, wenn der ContentMaster in allen Dokumenten steht, er aber bei bestimmten Dokumenten keine ApprovalRights besitzt.

! Achtung ! bei alten Dokumenten fehlt der Eintrag [ContentMaster] im Feld AuthorRights, so daß dieser die Dokumente nicht mehr bearbeiten kann. Ein vielleicht nicht unwichtiger Punkt beim Updateprozess.

Archiv

TechInfo

Designelemente in Notesansichten und Imageresource

By Dirk Bergles

Auf dem letzten CMS Meeting wurde es ja schon vorgestellt. Es gibt eine einfache Möglichkeit auch Designelemente in Notesansichten darzustellen.
Das eröffnet einige Möglichkeiten, z.B. die Picklist auf Subforms. Es kann natürlich auch Gefahren mit sich bringen, wenn auf diesem Wege z.B. Designelemente gelöscht werden können, etc.
Recht spannend ist immer noch die Möglichkeiten Imageresourcen mehr zu nutzen.
Es wurde ja von einer Ansicht berichtet die die Imageresourcen als Bilder darstellen kann.

Kein Problem:

mehr...

Archiv

TechInfo

Ansicht mit Designelementen in einer Picklist

By Dirk Bergles

Hier nun der praktische Einsatz des Designexperimentes mit Desingelementen in Notesansichten. Wie im CMS Meeting vorgeschlagen, steht nun eine Picklist von Subforms zur Verfügung.
Die beiden Buttons bieten eine Picklist über alle Notessubforms an und fügen sie entsprechend in das Fald CCM_Content_Notes_Subform ein.


Die View der Picklist benötigt das Feld $FormulaClass mit dem Wert "4" und die Selection selektiert ausschließlich Subforms.
"SELECT @Left($Flags;2) = "CU" & !@Contains($Flags;"n")"

Archiv

TechInfo

Neue berechnete Subform in der Hauptmaske

By Dirk Bergles

Nach reichlicher Überlegung werden wir wohl eine weitere berechnete Subform auf die Hauptmaske, also XTT_Notes_Content, bringen.
Neben der Subform für den ContentBereich und einer CustomSubform, besteht im konkreten Fall bei Cola die Notwendigkeit eine weitere Subform an prominenter Stelle oberhalb des Contents zu plazieren.
Lösbar wäre all dies mit den existierenden Möglichkeiten und verschachtelten Subform.
Aber erstens wäre dies sehr fehleranfällig bei der Planung und Gestaltung der Subforms und zweitens hat die Vergangenheit gezeigt, dass verschachtelte Subforms einfach Probleme bringen.

Folgende Lösung ist angedacht. Um es einfach zu halten, den Recompile in der Kundendatenbank zu vermeiden und nur wenig Erweiterungen einbauen zu müssen.
Das Feld für die zusätzliche ContentSubform im Template beschreibt auch die neue ControlSubform.

Getrennt mit einer | wird hinter der Custom Subform die neue Subform eingetragen. Keine Pipe, keine neue Subform, Leer vor der Pipe, keine CustomSubform, aber eine ControlSubform.
Dadurch kann die gesamte Erweiterung quasi ausschließlich in der Maske XTT_Notes_Content beschränkt werden.

Die Subform wird berechnet mit

Die bestehenden Subforms werden erweitert um:

Fertig !

Die Änderung sollte dann auch bald in den Standard gelangen.

Kommentare erwünscht....

Archiv

TechInfo

Portal und Personalisierung mit jQuery

By Hermann Schweers

Aus einer Kundenanforderung heraus entstand auf jQuery basierend ein personalisierter Bereich auf der Startseite des Intranets. In diesem Können die Nutzer eine Reihe von Boxen frei verschieben, diese auf- und zuklappen und das ganze speichern. So lässt sich in einem vorgegebenn Rahmen eine Personalisierung ermöglichen. Umsetzbar ist das mit dem jQuery UI Plugin Draggable und zusätzlich noch mit dem Befehl slideToggle, der ein schick aussehendes auf- und zuklappen der Boxen ermöglicht. Um dies nun zu ermöglichen, sind folgende Schritte nötig: mehr...

Archiv

TechInfo

Datenquellen mit Dokument-Filter

By Mike Meister

Insbesondere für den personalisierten Webauftritt kam der Wunsch nach einer Filterfunktion für Datenquellen auf.
Es ist nun möglich, Datenquellen vom Typ "get a notes view", "compute a viewname" (jeweils "flat" oder "first/selected category"), "perform a database full text search", "perform a database search" oder "select documents" mit einem Filter zu versehen, der entweder UnIDs anhand einer @Formula berechnet oder aus dem Profil eines angemeldeten Benutzers lädt:

Archiv

TechInfo

Was geht mit MashUps

By

Im Management großes Passwort sind May < shups die Wahrscheinlich sinvollste Ausprägung des sog. Web 2.0. Das haben sich auch so diverse Entwickler gedacht und da unser CMS ja prima Mashups unterstützt habe ich mal einige Links dazu:

Was zum Geier ist eigentlich ein Mashup: http://podfiles.zdf.de/podcast/3sat_podcasts/090208_sixtuslobo_neues_p.mp4
Was gibts denn da so: http://www.programmableweb.com/

und jetzt das Spannende:

Wie mache ich ein Mashup vielleicht in fünf Minuten (wenn ich weiß wie ich die Software bediene und eine SINVOLLE Idee habe)?

http://pipes.yahoo.com/pipes/

Archiv

TechInfo

NotesTimer - Aktionen im UI automatisch auslösen

By Mike Meister

Unter Verwendung des Lotus Script NotesTimer-Objekts kann innerhalb des UIs eine Aktion zeitgesteuert ausgelöst werden.
Hierzu muss z.B. innerhalb der Globals/Declarations einer Form das Objekt reloadTimer as NotesTimer dimensioniert werden:

Dim reloadTimer As NotesTimer

Unter z.B. Postopen(Source As Notesuidocument) kann dann das Objket initialisiert und dem Event Alarm eine Methode zugewiesen werden.

Sub Postopen(Source As Notesuidocument)

' init timer for automatic reload
Set reloadTimer = New NotesTimer(15, "Reload Portal")
On Event Alarm From reloadTimer Call reloadForm

End Sub

Zuvor muss die Methode reloadForm in den Globals (oder eben "erreichbar") deklariert worden sein:

Sub reloadForm(reloadTimer As NotesTimer)

Call portalUIDoc.refresh()

End Sub

Das Objekt portalUIDoc ist vom Typ NotesuiDocument und wurde global deklariert und beim öffnen des Maske intialisiert.

Das Ergebnis ist eine Maske, die sich alle 15 Sekunden "selbst" aktualisiert.
Euch fallen bestimmt einige nette Einsatzmöglichkeiten ein - bestimmt auch solche mit mehr Komplexität ;-).

Archiv

TechInfo

Neues Feature: Protokoll über neue Version hinaus

By Dirk Bergles

Aus einer Kundenanforderung.
Es kann nun das Protokoll eines Dokumentes beim Anlegen einer neuen Version mit übernommen werden.
Die Steuerung ist denkbar einfach.
In den CCM_GeneralSettings wird der Schalter copyinnewversion auf "yes" gesetzt.
<root>
<generalsettings>
...

<userlog>
<copyinnewversion>yes|no</copyinnewversion>
</userlog>


Ab Version 7.70 0

Tags:
Alle Tags