Monotone-Parent: 0c51f7b3e009fbf917f380938c76be5a98a288d0
Monotone-Revision: ecda7e1fc6092838f7b2b5c7a35d4cb7c1b2f11d Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2007-11-23T20:36:49 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
5b4a14c031
commit
296eeec5a6
|
@ -101,6 +101,21 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="menu" id="messagesListMenu">
|
||||
<ul>
|
||||
<li><var:string label:value="Forward"/></li>
|
||||
<li><!-- separator --></li>
|
||||
<li><var:string label:value="Move To"/></li>
|
||||
<li><var:string label:value="Copy To"/></li>
|
||||
<li><var:string label:value="Label"/></li>
|
||||
<li><var:string label:value="Mark"/></li>
|
||||
<li><!-- separator --></li>
|
||||
<li><var:string label:value="Print Preview"/></li>
|
||||
<li><var:string label:value="Print..."/></li>
|
||||
<li><var:string label:value="Delete Selected Messages"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="menu" id="messageContentMenu">
|
||||
<ul>
|
||||
<li><var:string label:value="Reply to Sender Only"/></li>
|
||||
|
|
|
@ -363,19 +363,30 @@ function onMailboxTreeItemClick(event) {
|
|||
|
||||
function _onMailboxMenuAction(menuEntry, error, actionName) {
|
||||
var targetMailbox = menuEntry.mailbox.fullName();
|
||||
var messages = new Array();
|
||||
|
||||
if (targetMailbox == Mailer.currentMailbox)
|
||||
window.alert(labels[error]);
|
||||
else {
|
||||
var message;
|
||||
if (document.menuTarget.tagName == "DIV")
|
||||
message = Mailer.currentMessages[Mailer.currentMailbox];
|
||||
// Menu called from message content view
|
||||
messages.push(Mailer.currentMessages[Mailer.currentMailbox]);
|
||||
else if (Object.isArray(document.menuTarget))
|
||||
// Menu called from multiple selection in messages list view
|
||||
messages = $(document.menuTarget).collect(function(row) {
|
||||
return row.getAttribute("id").substr(4);
|
||||
});
|
||||
else
|
||||
message = document.menuTarget.getAttribute("id").substr(4);
|
||||
// Menu called from one selection in messages list view
|
||||
messages.push(document.menuTarget.getAttribute("id").substr(4));
|
||||
|
||||
var urlstr = (URLForFolderID(Mailer.currentMailbox) + "/" + message
|
||||
+ "/" + actionName + "?folder=" + targetMailbox);
|
||||
triggerAjaxRequest(urlstr, folderRefreshCallback, Mailer.currentMailbox);
|
||||
var url_prefix = URLForFolderID(Mailer.currentMailbox) + "/";
|
||||
messages.each(function(msgid, i) {
|
||||
var url = url_prefix + msgid + "/" + actionName
|
||||
+ "?folder=" + targetMailbox;
|
||||
triggerAjaxRequest(url, folderRefreshCallback,
|
||||
((i == messages.size() - 1)?Mailer.currentMailbox:""));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -570,16 +581,15 @@ function quotasCallback(http) {
|
|||
|
||||
function onMessageContextMenu(event) {
|
||||
var menu = $('messageListMenu');
|
||||
Event.observe(menu, "hideMenu", onMessageContextMenuHide);
|
||||
popupMenu(event, "messageListMenu", this);
|
||||
|
||||
var topNode = $('messageList');
|
||||
var selectedNodes = topNode.getSelectedRows();
|
||||
for (var i = 0; i < selectedNodes.length; i++)
|
||||
selectedNodes[i].deselect();
|
||||
topNode.menuSelectedRows = selectedNodes;
|
||||
topNode.menuSelectedEntry = this;
|
||||
this.select();
|
||||
|
||||
Event.observe(menu, "hideMenu", onMessageContextMenuHide);
|
||||
|
||||
if (selectedNodes.length > 1)
|
||||
popupMenu(event, "messagesListMenu", selectedNodes);
|
||||
else
|
||||
popupMenu(event, "messageListMenu", this);
|
||||
}
|
||||
|
||||
function onMessageContextMenuHide(event) {
|
||||
|
@ -1355,7 +1365,7 @@ function updateMailboxMenus() {
|
|||
menu.appendChild(menuEntry);
|
||||
var mailbox = accounts[mailAccounts[i]];
|
||||
var newSubmenuId = generateMenuForMailbox(mailbox,
|
||||
key, mailboxActions[key]);
|
||||
key, mailboxActions[key]);
|
||||
submenuIds.push(newSubmenuId);
|
||||
}
|
||||
initMenu(menuDIV, submenuIds);
|
||||
|
@ -1500,27 +1510,59 @@ function onMenuChangeToTrashFolder(event) {
|
|||
}
|
||||
|
||||
function onMenuLabelNone() {
|
||||
var rowId = document.menuTarget.getAttribute("id").substr(4);
|
||||
var messageId = Mailer.currentMailbox + "/" + rowId;
|
||||
var urlstr = ApplicationBaseURL + messageId + "/removeAllLabels";
|
||||
triggerAjaxRequest(urlstr, messageFlagCallback,
|
||||
{ mailbox: Mailer.currentMailbox, msg: rowId, label: null } );
|
||||
var messages = new Array();
|
||||
|
||||
if (document.menuTarget.tagName == "DIV")
|
||||
// Menu called from message content view
|
||||
messages.push(Mailer.currentMessages[Mailer.currentMailbox]);
|
||||
else if (Object.isArray(document.menuTarget))
|
||||
// Menu called from multiple selection in messages list view
|
||||
$(document.menuTarget).collect(function(row) {
|
||||
messages.push(row.getAttribute("id").substr(4));
|
||||
});
|
||||
else
|
||||
// Menu called from one selection in messages list view
|
||||
messages.push(document.menuTarget.getAttribute("id").substr(4));
|
||||
|
||||
var url = ApplicationBaseURL + Mailer.currentMailbox + "/";
|
||||
messages.each(function(id) {
|
||||
triggerAjaxRequest(url + id + "/removeAllLabels",
|
||||
messageFlagCallback,
|
||||
{ mailbox: Mailer.currentMailbox, msg: id, label: null } );
|
||||
});
|
||||
}
|
||||
|
||||
function _onMenuLabelFlagX(flag) {
|
||||
var flags = document.menuTarget.getAttribute("labels").split(" ");
|
||||
var messages = new Hash();
|
||||
|
||||
var rowId = document.menuTarget.getAttribute("id").substr(4);
|
||||
var messageId = Mailer.currentMailbox + "/" + rowId;
|
||||
if (document.menuTarget.tagName == "DIV")
|
||||
// Menu called from message content view
|
||||
messages.set(Mailer.currentMessages[Mailer.currentMailbox],
|
||||
$('tr#row_' + Mailer.currentMessages[Mailer.currentMailbox]).getAttribute("labels"));
|
||||
else if (Object.isArray(document.menuTarget))
|
||||
// Menu called from multiple selection in messages list view
|
||||
$(document.menuTarget).collect(function(row) {
|
||||
messages.set(row.getAttribute("id").substr(4),
|
||||
row.getAttribute("labels"));
|
||||
});
|
||||
else
|
||||
// Menu called from one selection in messages list view
|
||||
messages.set(document.menuTarget.getAttribute("id").substr(4),
|
||||
document.menuTarget.getAttribute("labels"));
|
||||
|
||||
var url = ApplicationBaseURL + Mailer.currentMailbox + "/";
|
||||
messages.keys().each(function(id) {
|
||||
var flags = messages.get(id).split(" ");
|
||||
var operation = "add";
|
||||
|
||||
if (flags.indexOf("label" + flag) > -1)
|
||||
operation = "remove";
|
||||
|
||||
var operation = "add";
|
||||
if (flags.indexOf("label" + flag) > -1)
|
||||
operation = "remove";
|
||||
var urlstr = (ApplicationBaseURL + messageId
|
||||
+ "/" + operation + "Label" + flag);
|
||||
triggerAjaxRequest(urlstr, messageFlagCallback,
|
||||
{ mailbox: Mailer.currentMailbox, msg: rowId,
|
||||
label: operation + flag } );
|
||||
triggerAjaxRequest(url + id + "/" + operation + "Label" + flag,
|
||||
messageFlagCallback,
|
||||
{ mailbox: Mailer.currentMailbox, msg: id,
|
||||
label: operation + flag } );
|
||||
});
|
||||
}
|
||||
|
||||
function onMenuLabelFlag1() {
|
||||
|
@ -1650,6 +1692,12 @@ function getMenus() {
|
|||
"mark-menu", "-", null,
|
||||
onMenuViewMessageSource, null,
|
||||
null, onMenuDeleteMessage);
|
||||
menus["messagesListMenu"] = new Array(onMenuForwardMessage,
|
||||
"-", "moveMailboxMenu",
|
||||
"copyMailboxMenu", "label-menu",
|
||||
"mark-menu", "-",
|
||||
null, null,
|
||||
onMenuDeleteMessage);
|
||||
menus["messageContentMenu"] = new Array(onMenuReplyToSender,
|
||||
onMenuReplyToAll,
|
||||
onMenuForwardMessage,
|
||||
|
|
|
@ -311,6 +311,7 @@ SPAN.toolbarButton:active
|
|||
list-style-image: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
padding-top: 1px;
|
||||
border-top: 1px solid #fff;
|
||||
border-left: 1px solid #fff;
|
||||
border-right: 1px solid #9e9a92;
|
||||
|
@ -319,8 +320,8 @@ SPAN.toolbarButton:active
|
|||
.menu LI
|
||||
{ padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
padding-top: .2em;
|
||||
padding-bottom: .2em;
|
||||
padding-top: .15em;
|
||||
padding-bottom: .15em;
|
||||
margin: 0px;
|
||||
width: auto;
|
||||
white-space: nowrap; }
|
||||
|
|
|
@ -492,10 +492,6 @@ function onRowClick(event) {
|
|||
var node = getTarget(event);
|
||||
var rowIndex = null;
|
||||
|
||||
if (!Event.isLeftClick(event))
|
||||
// Ignore non primary-click (ie right-click)
|
||||
return true;
|
||||
|
||||
if (node.tagName == 'TD') {
|
||||
node = node.parentNode; // select TR
|
||||
rowIndex = node.rowIndex - $(node).up('table').down('thead').getElementsByTagName('tr').length;
|
||||
|
@ -513,6 +509,11 @@ function onRowClick(event) {
|
|||
}
|
||||
|
||||
var initialSelection = $(node.parentNode).getSelectedNodes();
|
||||
|
||||
if (initialSelection.length > 0 && !Event.isLeftClick(event))
|
||||
// Ignore non primary-click (ie right-click)
|
||||
return true;
|
||||
|
||||
if ((event.shiftKey == 1 || event.ctrlKey == 1)
|
||||
&& (lastClickedRow >= 0)
|
||||
&& (acceptMultiSelect(node.parentNode)
|
||||
|
@ -763,10 +764,14 @@ function popupSubmenu(event) {
|
|||
|
||||
var menuTop = (parentNode.offsetTop - 1
|
||||
+ this.offsetTop);
|
||||
|
||||
if (window.height()
|
||||
< (menuTop + submenuNode.offsetHeight)
|
||||
&& submenuNode.offsetHeight < window.height())
|
||||
menuTop -= submenuNode.offsetHeight - this.offsetHeight - 4;
|
||||
< (menuTop + submenuNode.offsetHeight))
|
||||
if (submenuNode.offsetHeight < window.height())
|
||||
menuTop = window.height() - submenuNode.offsetHeight;
|
||||
else
|
||||
menuTop = 0;
|
||||
|
||||
var menuLeft = (parentNode.offsetLeft + parentNode.offsetWidth - 3);
|
||||
if (window.width()
|
||||
< (menuLeft + submenuNode.offsetWidth))
|
||||
|
|
Loading…
Reference in New Issue