<var:foreach list="messages" item="message">
<tr class="tableview" var:id="msgRowID">
<td>
-<!-- enable once we have buttons and functionality to actually move sth #1211
- <input type="checkbox"
- var:value="msgRowID"
- const:checked="NO"
- const:name="selectedRows"
- onclick="javascript:toggleRowSelectionStatus(this);"
- />
--->
+ <!-- this seems to break on Safari, it treats name==id? -->
+ <input type="checkbox" var:name="msgRowID" value="0"
+ onchange="toggleMailSelect(this)" />
</td>
<td var:class="messageCellStyleClass">
<div var:class="messageSubjectStyleClass" var:id="msgDivID">
- <!-- Note: var:href="messageViewURL" (done by JS),
- var:target="messageViewTarget" -->
<a href="#" var:onclick="clickedMsgJS">
+ <!-- Note: var:href="messageViewURL" (done by JS),
+ var:target="messageViewTarget" -->
<var:string value="message.envelope.subject"
formatter="context.mailSubjectFormatter"/>
</a>
/* mail list */
+function openMessageWindow(sender, msguid, url) {
+ return window.open(url, "SOGo_msg_" + msguid,
+ "width=640,height=480,resizable=1,scrollbars=1,toolbar=0," +
+ "location=0,directories=0,status=0,menubar=0,copyhistory=0")
+}
+
function clickedUid(sender, msguid) {
- var urlstr;
-
- urlstr = msguid + "/view";
- window.open(urlstr, "SOGo_msg_" + msguid,
- "width=640,height=480,resizable=1,scrollbars=1,toolbar=0," +
- "location=0,directories=0,status=0,menubar=0,copyhistory=0")
+ resetSelection(window);
+ openMessageWindow(sender, msguid, msguid + "/view");
return true;
}
function doubleClickedUid(sender, msguid) {
return true;
}
+function singleClickedTableRow(clickEvent, sender) {
+ var rowid = sender.id;
+ var field;
+
+ field = document.forms['pageform'].elements[rowid];
+ if (field.value == "1") {
+ field.value = "0";
+ sender.className = "tableview";
+ }
+ else {
+ field.value = "1";
+ sender.className = "tableview_selected";
+ }
+}
+function doubleClickedTableRow(clickEvent, sender) {
+ var rowid = sender.id;
+ resetSelection(window);
+}
+
+function toggleMailSelect(sender) {
+ var row;
+ row = document.getElementById(sender.name);
+ row.className = sender.checked ? "tableview_selected" : "tableview";
+}
+function collectSelectedRows() {
+ var pageform = document.forms['pageform'];
+ var rows = new Array();
+
+ for (key in pageform) {
+ if (key.indexOf("row_") != 0)
+ continue;
+
+ if (!pageform[key].checked)
+ continue;
+
+ rows[rows.length] = key.substring(4, key.length);
+ }
+ return rows;
+}
+
function clearSearch(sender) {
var searchField = window.document.getElementById("searchtext");
if (searchField) searchField.value="";
/* generic stuff */
+function getHTTPClient() {
+ // http://developer.apple.com/internet/webcontent/xmlhttpreq.html
+ if (typeof XMLHttpRequest != "undefined")
+ return new XMLHttpRequest();
+
+ try { return new ActiveXObject("Msxml2.XMLHTTP"); }
+ catch (e) { }
+ try { return new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch (e) { }
+ return null;
+}
+
+function resetSelection(win) {
+ var t = "";
+ if (win && win.getSelection) {
+ t = win.getSelection().toString();
+ win.getSelection().removeAllRanges();
+ }
+ return t;
+}
+
function refreshOpener() {
if (window.opener && !window.opener.closed) {
window.opener.location.reload();
/* main window */
function reopenToRemoveLocationBar() {
+ // we cannot really use this, see below at the close comment
if (window.locationbar && window.locationbar.visible) {
newwin = window.open(window.location.href, "SOGo",
"width=800,height=600,resizable=1,scrollbars=1," +
}
return true;
}
+
+/* mail list reply */
+
+function openMessageWindowsForSelection(sender, action) {
+ var rows = collectSelectedRows();
+ var idset = "";
+
+ for (var i = 0; i < rows.length; i++)
+ win = openMessageWindow(sender, rows[i], rows[i] + "/" + action);
+}
cssClass = "tbicon_compose"; label = "Write";
},
),
-/* TODO: enable when implemented
( // second group
{ link = "#";
+ onclick="openMessageWindowsForSelection(this, 'reply'); return false;";
cssClass = "tbicon_reply"; label = "Reply"; },
{ link = "#";
+ onclick="openMessageWindowsForSelection(this, 'replyall'); return false;";
cssClass = "tbicon_replyall"; label = "Reply All"; },
- { link = "#"; cssClass = "tbicon_forward"; label = "Forward"; },
+ { link = "#";
+ onclick="openMessageWindowsForSelection(this, 'forward'); return false;";
+ cssClass = "tbicon_forward"; label = "Forward"; },
),
-*/
( // third group
{ link = "expunge";
cssClass = "tbicon_delete"; label = "Expunge"; },