merge of '28c05bb78bef144b921bd396d723df3160a6cd68'

and '86480ce562df131383c834ebb7c0a2f353871e18'

Monotone-Parent: 28c05bb78bef144b921bd396d723df3160a6cd68
Monotone-Parent: 86480ce562df131383c834ebb7c0a2f353871e18
Monotone-Revision: 1928b52441789ad4d83520e6d27fb7faa2f30d88

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2009-03-11T14:33:12
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Francis Lachapelle 2009-03-11 14:33:12 +00:00
commit b8f49dbbcf
3 changed files with 40 additions and 28 deletions

View file

@ -398,7 +398,7 @@
[self event]; [self event];
result = [context response]; result = [self responseWithStatus: 200];
user = [context activeUser]; user = [context activeUser];
timeZone = [user timeZone]; timeZone = [user timeZone];
dateFormatter = [user dateFormatterInContext: context]; dateFormatter = [user dateFormatterInContext: context];

View file

@ -96,39 +96,36 @@ Element.addMethods(
getSelectedNodes: function(element) { getSelectedNodes: function(element) {
element = $(element); element = $(element);
var selArray = new Array();
for (var i = 0; i < element.childNodes.length; i++) { if (!element.selectedElements)
node = element.childNodes.item(i); element.selectedElements = new Array();
if (node.nodeType == 1
&& isNodeSelected(node))
selArray.push(node);
}
return selArray; return element.selectedElements;
}, },
getSelectedNodesId: function(element) { getSelectedNodesId: function(element) {
element = $(element); element = $(element);
var selArray = new Array();
for (var i = 0; i < element.childNodes.length; i++) { var selArray = new Array();
node = element.childNodes.item(i); if (element.selectedElements) {
if (node.nodeType == 1 for (var i = 0; i < element.selectedElements.length; i++) {
&& isNodeSelected(node)) { var node = element.selectedElements[i];
selArray.push(node.getAttribute("id")); } selArray.push(node.getAttribute("id"));
} }
}
else
element.selectedElements = new Array();
return selArray; return selArray;
}, },
onContextMenu: function(element, event) { onContextMenu: function(element, event) {
element = $(element); element = $(element);
var popup = element.sogoContextMenu;
if (document.currentPopupMenu) if (document.currentPopupMenu)
hideMenu(document.currentPopupMenu); hideMenu(document.currentPopupMenu);
var popup = element.sogoContextMenu;
var menuTop = Event.pointerY(event); var menuTop = Event.pointerY(event);
var menuLeft = Event.pointerX(event); var menuLeft = Event.pointerX(event);
var heightDiff = (window.height() var heightDiff = (window.height()
@ -162,6 +159,15 @@ Element.addMethods(
selectElement: function(element) { selectElement: function(element) {
element = $(element); element = $(element);
element.addClassName('_selected'); element.addClassName('_selected');
var parent = element.up();
if (!parent.selectedElements)
// Selected nodes are kept in a array at the
// container level.
parent.selectedElements = new Array();
for (var i = 0; i < parent.selectedElements.length; i++)
if (parent.selectedElements[i] == element) return;
parent.selectedElements.push(element); // use index instead ?
}, },
selectRange: function(element, startIndex, endIndex) { selectRange: function(element, startIndex, endIndex) {
@ -192,14 +198,18 @@ Element.addMethods(
deselect: function(element) { deselect: function(element) {
element = $(element); element = $(element);
element.removeClassName('_selected'); element.removeClassName('_selected');
var parent = element.up();
if (parent.selectedElements)
parent.selectedElements = parent.selectedElements.without(element);
}, },
deselectAll: function(element) { deselectAll: function(element) {
element = $(element); element = $(element);
for (var i = 0; i < element.childNodes.length; i++) { if (element.selectedElements) {
var node = element.childNodes.item(i); for (var i = 0; i < element.selectedElements.length; i++)
if (node.nodeType == 1) element.selectedElements[i].removeClassName('_selected');
$(node).deselect(); element.selectedElements = null;
} }
}, },

View file

@ -256,8 +256,8 @@ function openMailTo(senderMailTo) {
if (mailto.length > 0) if (mailto.length > 0)
openMailComposeWindow(ApplicationBaseURL openMailComposeWindow(ApplicationBaseURL
+ "../Mail/compose?mailto=" + mailto + "../Mail/compose?mailto=" + encodeURI(mailto)
+ ((subject.length > 0)?"?subject="+subject:"")); + ((subject.length > 0)?"?subject=" + encodeURI(subject):""));
return false; /* stop following the link */ return false; /* stop following the link */
} }
@ -592,6 +592,7 @@ function onRowClick(event) {
$(node.parentNode).selectRange(lastClickedRow, rowIndex); $(node.parentNode).selectRange(lastClickedRow, rowIndex);
} else if (isNodeSelected(node)) { } else if (isNodeSelected(node)) {
$(node).deselect(); $(node).deselect();
rowIndex = null;
} else { } else {
$(node).selectElement(); $(node).selectElement();
} }
@ -609,6 +610,7 @@ function onRowClick(event) {
parentNode.fire("mousedown"); parentNode.fire("mousedown");
} }
} }
if (rowIndex)
lastClickedRow = rowIndex; lastClickedRow = rowIndex;
return true; return true;