merge of '0d9ecc5eae4ad9933bd54376cd8a7db508e6e0cb'

and '2c72d8da724d85fd836b547156f6c653ebb44991'

Monotone-Parent: 0d9ecc5eae4ad9933bd54376cd8a7db508e6e0cb
Monotone-Parent: 2c72d8da724d85fd836b547156f6c653ebb44991
Monotone-Revision: dbb95940faf0aead19daf176f22e0cd18debcef3

Monotone-Author: ludovic@Sophos.ca
Monotone-Date: 2008-09-05T09:41:03
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Ludovic Marcotte
2008-09-05 09:41:03 +00:00
9 changed files with 69 additions and 44 deletions

View File

@@ -1,5 +1,13 @@
2008-09-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/MailPartViewers/UIxMailPartAlternativeViewer.m
([UIxMailPartAlternativeViewer -selectPartIndexFromTypes:]): give
precedence on multipart/related parts.
* UI/MailPartViewers/UIxMailRenderingContext.m
([UIxMailRenderingContext -viewerForBodyInfo:_info]): add the
mixed viewer as the viewer for "multipart/digest" content.
* UI/MailPartViewers/UIxMailPartTextViewer.m (convertChars):
fixed a buffer overflow. Incremented the buffer size to 8192.

View File

@@ -92,6 +92,8 @@
if ((count = [_types count]) == 0)
return NSNotFound;
if ((i = [_types indexOfObject:@"multipart/related"]) != NSNotFound)
return i;
if ((i = [_types indexOfObject:@"text/calendar"]) != NSNotFound)
return i;
if ((i = [_types indexOfObject:@"text/html"]) != NSNotFound)

View File

@@ -208,11 +208,14 @@ static BOOL showNamedTextAttachmentsInline = NO;
if ([mt isEqualToString:@"multipart"])
{
if ([st isEqualToString:@"mixed"] || [st isEqualToString:@"related"] || [st isEqualToString: @"appledouble"])
if ([st isEqualToString: @"mixed"]
|| [st isEqualToString: @"digest"]
|| [st isEqualToString: @"related"]
|| [st isEqualToString: @"appledouble"])
return [self mixedViewer];
else if ([st isEqualToString:@"signed"])
else if ([st isEqualToString: @"signed"])
return [self signedViewer];
else if ([st isEqualToString:@"alternative"])
else if ([st isEqualToString: @"alternative"])
return [self alternativeViewer];
if ([st isEqualToString:@"report"])

View File

@@ -15,12 +15,13 @@
height="14"/></td
><td class="tbtv_headercell sortableTableHeader" id="subjectHeader"
><var:string label:value="Subject"/></td
><td class="tbtv_headercell sortableTableHeader" id="fromHeader"
><var:if condition="showToAddress"
><td class="tbtv_headercell sortableTableHeader" id="toHeader"
><var:string label:value="To"/></td></var:if
><var:if condition="showToAddress" const:negate="YES"
><var:string label:value="From"/></var:if
><var:if condition="showToAddress"
><var:string label:value="To"/></var:if
></td
><td class="tbtv_headercell sortableTableHeader" id="fromHeader"
><var:string label:value="From"/></td
></var:if
><td class="tbtv_headercell" id="messageFlagHeader"
><img rsrc:src="title_read_14x14.png"/></td
><td class="tbtv_headercell sortableTableHeader" id="dateHeader"
@@ -103,10 +104,8 @@
></td
><td class="messageDateColumn"
><span class="mailer_datefield"
><var:string value="messageDate"
/></span
><entity name="nbsp"
><var:string value="messageDate"
/><entity name="nbsp"
/></td
></tr>
</var:foreach>

View File

@@ -118,6 +118,7 @@
<script type="text/javascript" rsrc:src="prototype.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="tablekit.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="tablekit-trueresize.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="tablekit-sogo.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="JavascriptAPIExtensions.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="HTMLElement.js"><!-- space --></script>
<script type="text/javascript" rsrc:src="HTMLInputElement.js"><!-- space --></script>

View File

@@ -236,11 +236,6 @@ DIV#folderTreeContent TABLE TD
/* mail tableview */
span.mailer_datefield
{
white-space: nowrap;
}
TD.mailer_readmailsubject
{
padding-left: 20px !important;
@@ -421,7 +416,8 @@ TD.mailer_fieldvalue a
}
TR.deleted TD
{ text-decoration: line-through; }
{ display: none;
/* text-decoration: line-through; -- alternative display */ }
img.mailer_imagecontent
{

View File

@@ -238,15 +238,16 @@ function onDocumentKeydown(event) {
function deleteSelectedMessages(sender) {
var messageList = $("messageList");
var rowIds = messageList.getSelectedRowsId();
if (rowIds.length > 0) {
for (var i = 0; i < rowIds.length; i++) {
var rows = messageList.down("TBODY").getSelectedNodes();
if (rows.length > 0) {
for (var i = 0; i < rows.length; i++) {
var url;
var rowId = rowIds[i].substr(4);
var rowId = rows[i].readAttribute("id").substr(4);
var messageId = Mailer.currentMailbox + "/" + rowId;
url = ApplicationBaseURL + messageId + "/trash";
deleteMessageRequestCount++;
rows[i].addClassName("deleted");
var data = { "id": rowId, "mailbox": Mailer.currentMailbox, "messageId": messageId };
triggerAjaxRequest(url, deleteSelectedMessagesCallback, data);
}
@@ -268,16 +269,15 @@ function deleteSelectedMessagesCallback(http) {
div.update();
Mailer.currentMessages[Mailer.currentMailbox] = null;
}
var row = $("row_" + data["id"]);
var nextRow = row.next("tr");
if (!nextRow)
nextRow = row.previous("tr");
// row.addClassName("deleted"); // when we'll offer "mark as deleted"
if (deleteMessageRequestCount == 0) {
var row = $("row_" + data["id"]);
var nextRow = row.next("tr");
if (!nextRow)
nextRow = row.previous("tr");
// row.addClassName("deleted"); // when we'll offer "mark as deleted"
if (nextRow) {
Mailer.currentMessages[Mailer.currentMailbox] = nextRow.getAttribute("id").substr(4);
nextRow.selectElement();
loadMessage(Mailer.currentMessages[Mailer.currentMailbox]);
}
refreshCurrentFolder();
@@ -539,9 +539,12 @@ function messageListCallback(http) {
var tbody = table.tBodies[0];
var tmp = document.createElement('div');
$(tmp).update(http.responseText);
thead.rows[1].parentNode.replaceChild(tmp.firstChild.tHead.rows[1], thead.rows[1]);
addressHeaderCell.replaceChild(tmp.firstChild.tHead.rows[0].cells[3].lastChild,
var newRows = tmp.firstChild.tHead.rows;
thead.rows[1].parentNode.replaceChild(newRows[1], thead.rows[1]);
addressHeaderCell.replaceChild(newRows[0].cells[3].lastChild,
addressHeaderCell.lastChild);
addressHeaderCell.setAttribute("id", newRows[0].cells[3].getAttribute("id"));
table.replaceChild(tmp.firstChild.tBodies[0], tbody);
}
else {
@@ -560,9 +563,8 @@ function messageListCallback(http) {
row.selectElement();
lastClickedRow = row.rowIndex - $(row).up('table').down('thead').getElementsByTagName('tr').length;
var rowPosition = row.rowIndex * row.getHeight();
if ($(row).up('div').getHeight() > rowPosition)
rowPosition = 0;
div.scrollTop = rowPosition; // scroll to selected message
if (rowPosition > div.getHeight())
div.scrollTop = rowPosition; // scroll to selected message
}
else
$("messageContent").update();
@@ -1102,6 +1104,8 @@ function onHeaderClick(event) {
newSortAttribute = "subject";
else if (headerId == "fromHeader")
newSortAttribute = "from";
else if (headerId == "toHeader")
newSortAttribute = "to";
else if (headerId == "dateHeader")
newSortAttribute = "date";
else
@@ -1208,8 +1212,7 @@ function configureMessageListEvents(table) {
if (table) {
table.multiselect = true;
// Each body row can load a message
table.observe("mousedown",
onMessageSelectionChange.bindAsEventListener(table));
table.observe("mousedown", onMessageSelectionChange);
// Sortable columns
configureSortableTableHeaders(table);
}
@@ -1232,10 +1235,10 @@ function configureMessageListBodyEvents(table) {
row.observe("selectstart", listRowMouseDownHandler);
row.observe("contextmenu", onMessageContextMenu);
row.dndTypes = function() { return new Array("mailRow"); };
row.dndGhost = messageListGhost;
row.dndDataForType = messageListData;
// document.DNDManager.registerSource(row);
//row.dndTypes = function() { return new Array("mailRow"); };
//row.dndGhost = messageListGhost;
//row.dndDataForType = messageListData;
//document.DNDManager.registerSource(row);
for (var j = 0; j < row.cells.length; j++) {
var cell = $(row.cells[j]);

View File

@@ -564,11 +564,13 @@ function onRowClick(event) {
if (isMac() && isSafari())
if (event.ctrlKey == 1)
isLeftClick = false; // Control-click is equivalent to right-click under Mac OS X
else if (event.metaKey == 1) // Command-click
isLeftClick = true;
else
isLeftClick = Event.isLeftClick(event);
else
isLeftClick = Event.isLeftClick(event);
if (initialSelection.length > 0
&& initialSelection.indexOf(node) >= 0
&& !isLeftClick)
@@ -1435,8 +1437,8 @@ function onBodyClickContextMenu(event) {
function configureSortableTableHeaders(table) {
var headers = $(table).getElementsByClassName("sortableTableHeader");
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
$(header).observe("click", onHeaderClick);
var header = $(headers[i]);
header.observe("click", onHeaderClick);
}
}

View File

@@ -0,0 +1,11 @@
Object.extend(TableKit, {
getHeaderCells : function(table, cell) {
if(!table) { table = $(cell).up('table'); }
var id = table.id;
if(!TableKit.tables[id].dom.head) {
// If there are tHead parts, use the first part, not the last one.
TableKit.tables[id].dom.head = $A((table.tHead && table.tHead.rows.length > 0) ? table.tHead.rows[0].cells : table.rows[0].cells);
}
return TableKit.tables[id].dom.head;
}
});