Sebastian Evers
Kundenbetreuung
26. November 2016 - Dipl. Ing. Nicolas Ehrschwendner
Zimbra zeigt in der Mail-Übersicht im Web-Client bei älteren e-Mails nur das Datum an (Tag Monat, also z.B. 4. Apr.). Will man bei allen eMail auch die Uhrzeit sehen, müssen einige Änderungen im Quell-Code vorgenommen werden.
Konfigurationsschritte für Zimbra 8.6 sowie Zimbra 8.7. Für Zimbra 8.8 sowie Zimbra 8.9. siehe weiter unten die Änderungen für MailCore_all.js!
Für andere Versionen müssen die Schritte ggf. angepasst werden. Nach einem Update auf eine neuere Zimbra Version müssen die angegebenen Schritte erneut durchgeführt werden.
Alle Angaben ohne Gewähr!
I. Datei: /opt/zimbra/mailboxd/webapps/zimbra/js/MailCore_all.js !BACKUP DER DATEI ANLEGEN! In der Funktion ZmMailListView.prototype._getCellContents die Zeile beginnend mit "var date =" editieren auf: var date = AjxDateUtil.computeDateTimeString(new Date(item.date)); UPDATE Will man auch die Wochentage sehen, sind folgende Anpassungen nötig. Anbei die gesamte Funktion von Zimbra 8.6. sowie Zimbra 8.7. (ggf. Anpassungen bei älteren oder neueren Zimbra-Versionen notwendig): ZmMailListView.prototype._getCellContents = function(htmlArr, idx, item, field, colIdx, params, classes) { if (field == ZmItem.F_ACCOUNT) { idx = this._getImageHtml(htmlArr, idx, item.getAccount().getIcon(), this._getFieldId(item, field), classes); } else if (field == ZmItem.F_DATE) { // attingo // var date = AjxDateUtil.computeDateStr(params.now || new Date(), item.date); var date = AjxDateUtil.computeDateTimeString(new Date(item.date)); var att_date = new Date(item.date); var att_day = att_date.getDay(); var att_daylist = new Array(7); att_daylist[0]= I18nMsg.weekdaySunMedium; att_daylist[1] = I18nMsg.weekdayMonMedium; att_daylist[2] = I18nMsg.weekdayTueMedium; att_daylist[3] = I18nMsg.weekdayWedMedium; att_daylist[4] = I18nMsg.weekdayThuMedium; att_daylist[5] = I18nMsg.weekdayFriMedium; att_daylist[6] = I18nMsg.weekdaySatMedium; var att_dow = att_daylist[att_day]; htmlArr[idx++] = "<div id='"; htmlArr[idx++] = this._getFieldId(item, field); htmlArr[idx++] = "' "; if (!this.isMultiColumn()) { //compute the start and end of gradient based on height of this div and its position var extraStyle = this._getExtraStyle(item,0.69,0.55); if (extraStyle) { htmlArr[idx++] = " style='" + extraStyle + "'"; } } htmlArr[idx++] = AjxUtil.getClassAttr(classes); htmlArr[idx++] = ">" + att_dow + ", " + date + "</div>"; } else { idx = ZmListView.prototype._getCellContents.apply(this, arguments); } return idx; }; Anpassungen für Zimbra 8.8 bzw. 8.8.5 bzw. 8.8.10 für Anzeige immer Wochentag, Datum, Uhrzeit Webfrontend Zimbra Webmail:
Funktion ZmMailListView.prototype._getCellContents ZmMailListView.prototype._getCellContents =
function(htmlArr, idx, item, field, colIdx, params, classes) {
if (field == ZmItem.F_ACCOUNT) {
idx = this._getImageHtml(htmlArr, idx, item.getAccount().getIcon(), this._getFieldId(item, field), classes);
}
else if (field == ZmItem.F_DATE) {
// var date = AjxDateUtil.computeDateStr(params.now || new Date(), item.date);
var date = AjxDateUtil.computeDateTimeString(new Date(item.date));
var att_date = new Date(item.date);
var att_day = att_date.getDay();
var att_daylist = new Array(7);
att_daylist[0]= I18nMsg.weekdaySunMedium;
att_daylist[1] = I18nMsg.weekdayMonMedium;
att_daylist[2] = I18nMsg.weekdayTueMedium;
att_daylist[3] = I18nMsg.weekdayWedMedium;
att_daylist[4] = I18nMsg.weekdayThuMedium;
att_daylist[5] = I18nMsg.weekdayFriMedium;
att_daylist[6] = I18nMsg.weekdaySatMedium;
var att_dow = att_daylist[att_day];
htmlArr[idx++] = "<div id='";
htmlArr[idx++] = this._getFieldId(item, field);
htmlArr[idx++] = "' ";
if (!this.isMultiColumn()) {
//compute the start and end of gradient based on height of this div and its position
var extraStyle = this._getExtraStyle(item,0.69,0.55);
if (extraStyle) {
htmlArr[idx++] = " style='" + extraStyle + "'";
}
}
htmlArr[idx++] = AjxUtil.getClassAttr(classes);
htmlArr[idx++] = ">" + att_dow + ", " + date + "</div>";
}
else {
idx = ZmListView.prototype._getCellContents.apply(this, arguments);
}
return idx;
};
II.
Im Verzeichnis /opt/zimbra/mailboxd/webapps/zimbra/js/ die Archiv-Dateien erstellen als User Zimbra - also "su - zimbra"
gzip -c MailCore_all.js > MailCore_all.js.gz
mv MailCore_all.js.gz MailCore_all.js.zgz
III.
Datei: /opt/zimbra/mailboxd/webapps/zimbra/WEB-INF/classes/messages/ZmMsg_de.properties !BACKUP DER DATEI ANLEGEN! Ggf. auch weitere Language-Dateien - je nach eingesetzten Sprachen - entsprechend anpassen. Im Block beginnend mit "# mail list views" die Zeilen hinzufügen und/oder editieren, um die Spalten-Breiten im Zimbra Web-Client anzupassen:
COLUMN_WIDTH_DATE = 195
COLUMN_WIDTH_FOLDER = 95
COLUMN_WIDTH_FROM_CLV = 160
COLUMN_WIDTH_FROM_MLV = 155
COLUMN_WIDTH_SIZE = 55
COLUMN_WIDTH_ITEM_COUNT = 120
Achtung! Ab Version Zimbra 8.8.8 existiert ein zusätzliches Feld "COLUMN_WIDTH_DATE_TIME", dieses ebenfalls auf 195 setzen.
Notwendig ist nur der COLUMN_WIDTH_DATE, die anderen Einträge sind von mir subjektiv für ein besseres Erscheinungsbild angepasst worden.
IV.
Als User zimbra (mit Befehl "su - zimbra") ausführen:
zmprov fc uistrings
zmcontrol restart
Zum Herumexperementieren mit Spaltenbreiten genügt es, den Befehl zmprov wie oben angegeben auszuführen.
Full date and time in Zimbra within mail overview list