From 1ba101d8acc2adffc6a35c2bdeee00f5aba3670c Mon Sep 17 00:00:00 2001 From: "mvl%exedo.nl" Date: Mon, 27 Jun 2005 21:40:53 +0000 Subject: [PATCH] Bug 229708 select more than one task and change priority or progress should affect all selected items. patch by jminta, r=mvl git-svn-id: svn://10.0.0.236/trunk@175180 18797224-902f-48f8-a5cc-f745e15eee43 --- .../resources/content/unifinderToDo.js | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/mozilla/calendar/resources/content/unifinderToDo.js b/mozilla/calendar/resources/content/unifinderToDo.js index b885619af00..b0b6a68d3ff 100644 --- a/mozilla/calendar/resources/content/unifinderToDo.js +++ b/mozilla/calendar/resources/content/unifinderToDo.js @@ -572,34 +572,45 @@ function getTaskTable( ) function contextChangeProgress( event, Progress ) { var tree = document.getElementById( ToDoUnifinderTreeName ); - - if (tree.view.selection.count > 0) - { - var todoItem = tree.taskView.getCalendarTaskAtRow( tree.currentIndex ); - if(todoItem) - { - var newItem = todoItem.clone().QueryInterface(Components.interfaces.calITodo); + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var toDoItem; + if(numRanges == 0) + return; + startBatchTransaction(); + for (var t = 0; t < numRanges; t++) { + tree.view.selection.getRangeAt(t, start, end); + for (v = start.value; v <= end.value; v++) { + todoItem = tree.taskView.getCalendarTaskAtRow( v ); + var newItem = todoItem.clone().QueryInterface( Components.interfaces.calITodo ); newItem.percentComplete = Progress; doTransaction('modify', newItem, newItem.calendar, todoItem, null); } } + endBatchTransaction(); } - function contextChangePriority( event, Priority ) { var tree = document.getElementById( ToDoUnifinderTreeName ); - - if (tree.view.selection.count > 0) - { - var todoItem = tree.taskView.getCalendarTaskAtRow( tree.currentIndex ); - if(todoItem) - { - var newItem = todoItem.clone().QueryInterface(Components.interfaces.calITodo); + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var toDoItem; + if(numRanges == 0) + return; + startBatchTransaction(); + for (var t = 0; t < numRanges; t++) { + tree.view.selection.getRangeAt(t, start, end); + for (v = start.value; v <= end.value; v++) { + todoItem = tree.taskView.getCalendarTaskAtRow( v ); + var newItem = todoItem.clone().QueryInterface( Components.interfaces.calITodo ); newItem.priority = Priority; doTransaction('modify', newItem, newItem.calendar, todoItem, null); } } + endBatchTransaction(); } function changeContextMenuForToDo( event )