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> 2010-08-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoDAVAuthenticator.m (-checkLogin:password:): * SoObjects/SOGo/SOGoDAVAuthenticator.m (-checkLogin:password:):

View file

@ -175,17 +175,13 @@
</div> </div>
<div class="menu" id="mark-menu"> <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="As Read" /></li>
<li><var:string label:value="Thread 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="As Read By Date..." /></li>
<li><var:string label:value="All Read" /></li> <li><var:string label:value="All Read" /></li>
<li><!-- separator --></li> <li><!-- separator --></li>
<li><var:string label:value="Flag" /></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> </ul>
</div> </div>

View file

@ -203,29 +203,43 @@ function openMessageWindowsForSelection(action, firstOnly) {
} }
/* Triggered when clicking on the read/unread dot of a message row */ /* 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) { function mailListMarkMessage(event) {
var msguid = this.id.split('_')[1]; mailListToggleMessagesRead();
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);
preventDefault(event); preventDefault(event);
return false; return false;
} }
@ -242,28 +256,42 @@ function mailListMarkMessageCallback(http) {
} }
} }
function mailListFlagMessageToggle(e) {
function mailListFlagMessageToggle (e) { mailListToggleMessagesFlagged();
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 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)) { if (isHttpStatus204(http.status)) {
var data = http.callbackData; var data = http.callbackData;
Mailer.dataTable.invalidate(data["msguid"], true); Mailer.dataTable.invalidate(data["msguid"], true);
@ -2104,6 +2132,10 @@ function onMenuChangeToTrashFolder(event) {
return _onMenuChangeToXXXFolder(event, "Trash"); return _onMenuChangeToXXXFolder(event, "Trash");
} }
function onMenuToggleMessageRead(event) {
mailListToggleMessagesRead();
}
function onMenuLabelNone() { function onMenuLabelNone() {
var messages = new Array(); var messages = new Array();
@ -2180,6 +2212,10 @@ function onMenuLabelFlag5() {
_onMenuLabelFlagX(5); _onMenuLabelFlagX(5);
} }
function onMenuToggleMessageFlag(event) {
mailListToggleMessagesFlagged();
}
function folderOperationCallback(http) { function folderOperationCallback(http) {
if (http.readyState == 4 if (http.readyState == 4
&& isHttpStatus204(http.status)) && isHttpStatus204(http.status))
@ -2322,6 +2358,40 @@ function onLabelMenuPrepareVisibility() {
lis[0].addClassName("_chosen"); 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) { function saveAs(event) {
var messageList = $("messageListBody").down("TBODY"); var messageList = $("messageListBody").down("TBODY");
var rows = messageList.getSelectedNodes(); var rows = messageList.getSelectedNodes();
@ -2408,8 +2478,9 @@ function getMenus() {
"label-menu": [ onMenuLabelNone, "-", onMenuLabelFlag1, "label-menu": [ onMenuLabelNone, "-", onMenuLabelFlag1,
onMenuLabelFlag2, onMenuLabelFlag3, onMenuLabelFlag2, onMenuLabelFlag3,
onMenuLabelFlag4, onMenuLabelFlag5 ], onMenuLabelFlag4, onMenuLabelFlag5 ],
"mark-menu": [ null, null, null, null, "-", null, "-", "mark-menu": [ onMenuToggleMessageRead, null, null, null, "-", onMenuToggleMessageFlag ],
null, null, null ], // , "-",
// null, null, null ],
searchMenu: [ setSearchCriteria, setSearchCriteria, searchMenu: [ setSearchCriteria, setSearchCriteria,
setSearchCriteria, setSearchCriteria, setSearchCriteria, setSearchCriteria,
@ -2421,6 +2492,11 @@ function getMenus() {
labelMenu.prepareVisibility = onLabelMenuPrepareVisibility; labelMenu.prepareVisibility = onLabelMenuPrepareVisibility;
} }
var markMenu = $("mark-menu");
if (markMenu) {
markMenu.prepareVisibility = onMarkMenuPrepareVisibility;
}
var listMenus = [ "messageListMenu", "messagesListMenu", "messageContentMenu" ]; var listMenus = [ "messageListMenu", "messagesListMenu", "messageContentMenu" ];
for (var i = 0; i < listMenus.length; i++) { for (var i = 0; i < listMenus.length; i++) {
var menu = $(listMenus[i]); var menu = $(listMenus[i]);