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