Monotone-Parent: f6c6e91570c47d1f21a72f6e6379690131692fff

Monotone-Revision: b4f7cd6dfc31765ed9331020a8d070d54d8d0549

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2010-08-23T15:32:52
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau 2010-08-23 15:32:52 +00:00
parent f52e7111c6
commit 8a1e805657
3 changed files with 134 additions and 47 deletions

View file

@ -1,3 +1,18 @@
2010-08-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/WebServerResources/MailerUI.js: (mailListToggleMessagesRead):
new method, spun from "mailListMarkMessage", which is basically
replaces in a more generic way by acting on all selected messages
in the msg list.
(mailListToggleMessagesFlagged): same as above for
"mailListFlagMessageToggle".
(onMenuToggleMessageRead, onMenuToggleMessageFlag): new menu
callback methods.
(onMarkMenuPrepareVisibility): new visibility method for the
"mark-menu".
(getMenus): activated the "mark as read" and "toggle flag" menu
options of the "mark menu".
2010-08-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoDAVAuthenticator.m (-checkLogin:password:):

View file

@ -175,17 +175,13 @@
</div>
<div class="menu" id="mark-menu">
<ul id="">
<ul id="" class="choiceMenu">
<li><var:string label:value="As Read" /></li>
<li><var:string label:value="Thread As Read" /></li>
<li><var:string label:value="As Read By Date..." /></li>
<li><var:string label:value="All Read" /></li>
<li><!-- separator --></li>
<li><var:string label:value="Flag" /></li>
<li><!-- separator --></li>
<li><var:string label:value="As Junk" /></li>
<li><var:string label:value="As Not Junk" /></li>
<li><var:string label:value="Run Junk Mail Controls" /></li>
</ul>
</div>

View file

@ -203,29 +203,43 @@ function openMessageWindowsForSelection(action, firstOnly) {
}
/* Triggered when clicking on the read/unread dot of a message row */
function mailListToggleMessagesRead() {
var messageList = $("messageListBody");
if (messageList) {
var selectedRows = messageList.getSelectedRows();
if (selectedRows.length > 0) {
var row = selectedRows[0];
var action;
var markread;
if (row.hasClassName("mailer_unreadmail")) {
action = 'markMessageRead';
markread = true;
}
else {
action = 'markMessageUnread';
markread = false;
}
for (var i = 0; i < selectedRows.length; i++) {
row = selectedRows[i];
var msguid = row.id.split('_')[1];
markMailInWindow(window, msguid, markread);
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/"
+ msguid + "/" + action;
var data = { "msguid": msguid };
triggerAjaxRequest(url, mailListMarkMessageCallback, data);
}
}
}
}
function mailListMarkMessage(event) {
var msguid = this.id.split('_')[1];
var row = $(this).up('TR');
var action;
var markread;
if (row.hasClassName("mailer_unreadmail")) {
action = 'markMessageRead';
markread = true;
}
else {
action = 'markMessageUnread';
markread = false;
}
markMailInWindow(window, msguid, markread);
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/"
+ msguid + "/" + action;
var data = { "msguid": msguid };
triggerAjaxRequest(url, mailListMarkMessageCallback, data);
mailListToggleMessagesRead();
preventDefault(event);
return false;
}
@ -242,28 +256,42 @@ function mailListMarkMessageCallback(http) {
}
}
function mailListFlagMessageToggle (e) {
var msguid = this.ancestors ().first ().id.split ("_")[1];
var img = this.childElements ().first ();
var action = "markMessageFlagged";
var flagged = true;
if (img.hasClassName ("messageIsFlagged")) {
action = "markMessageUnflagged";
flagged = false;
}
flagMailInWindow(window, msguid, flagged);
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/"
+ msguid + "/" + action;
var data = { "msguid": msguid };
triggerAjaxRequest(url, mailListFlagMessageToggleCallback, data);
function mailListFlagMessageToggle(e) {
mailListToggleMessagesFlagged();
}
function mailListFlagMessageToggleCallback (http) {
function mailListToggleMessagesFlagged() {
var messageList = $("messageListBody");
if (messageList) {
var selectedRows = messageList.getSelectedRows();
if (selectedRows.length > 0) {
var row = selectedRows[0];
var firstTd = row.childElements().first();
var img = firstTd.childElements().first();
var action = "markMessageFlagged";
var flagged = true;
if (img.hasClassName("messageIsFlagged")) {
action = "markMessageUnflagged";
flagged = false;
}
for (var i = 0; i < selectedRows.length; i++) {
row = selectedRows[i];
var msguid = row.id.split("_")[1];
flagMailInWindow(window, msguid, flagged);
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/"
+ msguid + "/" + action;
var data = { "msguid": msguid };
triggerAjaxRequest(url, mailListToggleMessageFlaggedCallback, data);
}
}
}
}
function mailListToggleMessageFlaggedCallback(http) {
if (isHttpStatus204(http.status)) {
var data = http.callbackData;
Mailer.dataTable.invalidate(data["msguid"], true);
@ -2104,6 +2132,10 @@ function onMenuChangeToTrashFolder(event) {
return _onMenuChangeToXXXFolder(event, "Trash");
}
function onMenuToggleMessageRead(event) {
mailListToggleMessagesRead();
}
function onMenuLabelNone() {
var messages = new Array();
@ -2180,6 +2212,10 @@ function onMenuLabelFlag5() {
_onMenuLabelFlagX(5);
}
function onMenuToggleMessageFlag(event) {
mailListToggleMessagesFlagged();
}
function folderOperationCallback(http) {
if (http.readyState == 4
&& isHttpStatus204(http.status))
@ -2322,6 +2358,40 @@ function onLabelMenuPrepareVisibility() {
lis[0].addClassName("_chosen");
}
function onMarkMenuPrepareVisibility() {
var messageList = $("messageListBody");
if (messageList) {
var nodes = messageList.down("TBODY").getSelectedNodes();
var isRead = false;
var isFlagged = false;
if (nodes.length > 0) {
var row = nodes[0];
var firstTd = row.childElements().first();
var img = firstTd.childElements().first();
isFlagged = img.hasClassName ("messageIsFlagged");
isRead = !row.hasClassName("mailer_unreadmail");
}
var menuUL = this.childElements()[0];
var menuLIS = menuUL.childElements();
if (isRead) {
menuLIS[0].addClassName("_chosen");
}
else {
menuLIS[0].removeClassName("_chosen");
}
if (isFlagged) {
menuLIS[5].addClassName("_chosen");
}
else {
menuLIS[5].removeClassName("_chosen");
}
}
}
function saveAs(event) {
var messageList = $("messageListBody").down("TBODY");
var rows = messageList.getSelectedNodes();
@ -2408,8 +2478,9 @@ function getMenus() {
"label-menu": [ onMenuLabelNone, "-", onMenuLabelFlag1,
onMenuLabelFlag2, onMenuLabelFlag3,
onMenuLabelFlag4, onMenuLabelFlag5 ],
"mark-menu": [ null, null, null, null, "-", null, "-",
null, null, null ],
"mark-menu": [ onMenuToggleMessageRead, null, null, null, "-", onMenuToggleMessageFlag ],
// , "-",
// null, null, null ],
searchMenu: [ setSearchCriteria, setSearchCriteria,
setSearchCriteria, setSearchCriteria,
@ -2421,6 +2492,11 @@ function getMenus() {
labelMenu.prepareVisibility = onLabelMenuPrepareVisibility;
}
var markMenu = $("mark-menu");
if (markMenu) {
markMenu.prepareVisibility = onMarkMenuPrepareVisibility;
}
var listMenus = [ "messageListMenu", "messagesListMenu", "messageContentMenu" ];
for (var i = 0; i < listMenus.length; i++) {
var menu = $(listMenus[i]);