Verwalten von E-Mail-Vorlagen

Allegra sendet E-Mails, um Benutzer z.B. über Änderungen an Vorgängen zu informieren oder sie an fällige Termine zu erinnern. Sie können das Aussehen und den Inhalt dieser E-Mails mit Vorlagen anpassen.

Zum Hinzufügen oder Bearbeiten von E-Mail-Vorlagen gehen Sie in der Verwaltungs-Perspektive zu Verwaltung > Anpassen > E-Mail-Vorlagen.

../../_images/mailTemplate11.png

Es gibt eine Reihe von vordefinierten Ereignissen, die E-Mails auslösen. Diese sind

  • Vorgang erstellen

  • Vorgang ändern

  • Budget- oder Planwerte ändern

  • Einen Kommentar hinzufügen

Darüber hinaus gibt es eine Reihe von Systemereignissen, die E-Mails auslösen. Diese sind

  • Begrüßung eines neuen Benutzers nach der Registrierung

  • Kennwort vergessen

  • Erinnerungs-E-Mail für fällige oder überfällige Vorgänge

Sie können weiterhin E-Mail-Vorlagen erstellen

  • für das Versenden von E-Mails aus einem Vorgang heraus

  • für Plugins

Sie ordnen Vorlagen entweder global oder spezifisch für einen Vorgangstyp oder einen Arbeitsbereichstyp oder sogar bereichsspezifisch, indem Sie ihn aus dem rechten Bereich in die gewünschte Position in der zweiten Spalte ziehen. Jede Vorlage kommt in zwei Varianten: HTML und Klartext. Jede Vorlage kann in einer Reihe von Gebietsschemata zur Verfügung gestellt werden. Sie können komplette Vorlagen-Sets oder nur einzelne Vorlagen importieren und exportieren.

../../_images/mailTemplate2.png
../../_images/mailTemplate3.png

Vorlagen werden in der Freemarker-Makrosprache geschrieben (siehe https://freemarker.apache.org/docs/index.html). Die folgende Auflistung zeigt einen Teil der E-Mail HTML-Vorlage für Vorgangsänderungen, wie sie mit Allegra ausgeliefert wird.

<#macro renderShortFields fieldChangeRows>
<#list fieldChangeRows as fieldChange>
<tr>
    <td align="right" bgcolor="#d8e1ed"
            style="width: 26%;">
            ${fieldChange.localizedFieldLabel}:
    </td>
    <#-- if copy we are not interested in the
        change compared to the original workItem -->
    <#if !fieldChange.changed>
        <#assign bgcolor=bgcolorCellNormal>
    <#else>
        <#assign bgcolor=bgcolorCellChanged>
    </#if>
    <td bgcolor="${bgcolor}" style="width: 37%;">
    ${fieldChange.newShowValue}
    </td>
    <td bgcolor="#edf0f6" style="width: 37%;">
    ${fieldChange.oldShowValue}
    </td>
    </tr>
</#list>
</#macro>

Das Template-Modul stellt für die Vorlagen eine Anzahl von Variablen zur Verfügung. Die meisten Variablen sind Kindvariablen von FieldChangeRows. Damit lassen sich E-Mails wie die unten dargestellte erzeugen.

../../_images/mailTemplate4.png

Folgende Attribute stehen zur Verfügung:

Variable

Beschreibung

title

Der Vorgangstitel

project

Der Bereich oder das Projekt für diesen Vorgang

itemNo

Die Vorgangsnummer

marker

Default ist [ Allegra <Vorgangsnummer>]

submitterEmail

Die E-Mail des Einreichers, wenn Vorgang per E-Mail erstellt wurde oder wenn er von einem anderen Benutzer eingegeben wurde

subject

Voreinstellung ist ${marker} [${{project}] ${changeDetail}

changeDetail

Eine lokalisierte Textzeichenfolge, wie im folgenden Code beschrieben

moreInfo

Der Link zum Vorgang innerhalb des Allegra-Systems

isCreated

True, wenn dieser Vorgang gerade erstellt wurde

isCopy

True, wenn dieser Vorgang gerade kopiert wurde

oldIssue

Nur im Falle einer Kopie: die ursprüngliche Vorgangsnummer

isAddComment

True, wenn ein Kommentar hinzugefügt wurde

isEditComment

True, wenn ein Kommentar bearbeitet wurde

isDeleteComment

True, wenn ein Kommentar gelöscht wurde

isOtherChanged

True für jede Änderung, die nicht expliziter angegeben wurde

isManagerChanged

True, wenn der Manager geändert wurde

isResponsibleChanged

True, wenn der Bearbeiter geändert wurde

isDateChanged

True, wenn das Start- oder Enddatum geändert wurde

isMove

True, wenn der Vorgang zu einem neuen Vorgangstyp oder Bereich verschoben wurde

isStateChanged

True, wenn der Vorgangszustand geändert wurde

isResponsibleChanged

True, wenn der zuständige Bearbeiter geändert wurde

isClose

True, wenn der Vorgang geschlossen wurde

isReopen

True, wenn ein geschlossener Vorgang wieder geöffnet wurde

changedBy

Die Person, die das E-Mail-Ereignis verursacht

createdBy

Die Person, die diesen Vorgang erstellt hat (im Falle von erstellen)

shortFieldChanges

Eine Liste der Vorgangs-Attribute für „short“ -Attribute

shortFieldChanges.fieldChange

Ein einzelnes Attribut

shortFieldChanges.fieldChange.changed

True, wenn dieses Attribut geändert wurde

shortFieldChanges.fieldChange.newShowValue

Der neue oder tatsächliche Attributwert

shortFieldChanges.fieldChange.oldShowValue

Der alte Attributwert

longFieldChanges

Eine Liste von Element-Attributen für „long“ Attribute wie Beschreibungen und Kommentare

longFieldChanges.fieldChange

Ein einzelnes Attribut

longFieldChanges.fieldChange.changed

True, wenn dieses Attribut geändert wurde

longFieldChanges.fieldChange.newShowValue

Der neue oder tatsächliche Attributwert

longFieldChanges.fieldChange.oldShowValue

Der alte Attributwert

Das folgende Listing beschreibt, wie die ChangeDetail-Variable aufgebaut ist.

private String getSubjectSuffix(Integer workItemKey, String synopsis,
                                String newStateLabel, Locale actualLocale) {

    String subjectPatternKey = null;
    //the last complying flag wins
    if (isAddComment) {
        subjectPatternKey = "item.mail.subject.addComment";
    }
    if (isEditComment) {
        subjectPatternKey = "item.mail.subject.editComment";
    }
    if (isDeleteComment) {
        subjectPatternKey = "item.mail.subject.deleteComment";
    }
    if (isOtherChanged) {
        subjectPatternKey = "item.mail.subject.trail";
    }
    if (isManagerChanged) {
        subjectPatternKey = "item.mail.subject.managerChanged";
    }
    if (isResponsibleChanged) {
        subjectPatternKey = "item.mail.subject.responsibleChanged";
    }
    if (isDateChanged) {
        subjectPatternKey = "item.mail.subject.dateChange";
    }
    if (isMove) {
        subjectPatternKey = "item.mail.subject.move";
    }
    if (isStateChanged) {
        subjectPatternKey = "item.mail.subject.stateChange";
    }
    if (isClose) {
        subjectPatternKey = "item.mail.subject.closed";
    }
    if (isReopen) {
        subjectPatternKey = "item.mail.subject.reopen";
    }
    if (isCreated || isCopy) {
        subjectPatternKey = "item.mail.subject.new";
    }
    String changeDetail = "";
    Object[] subjectArguments = {workItemKey, //for new
            synopsis,
            newStateLabel, //for state change
            //newProjectLabel,
    };
    changeDetail = LocalizeUtil.
                getParametrizedString(subjectPatternKey,
            subjectArguments, actualLocale);
    return changeDetail;
}