diff --git a/Apache/SOGo-debian.conf b/Apache/SOGo-debian.conf
new file mode 100644
index 000000000..e863a6e70
--- /dev/null
+++ b/Apache/SOGo-debian.conf
@@ -0,0 +1,46 @@
+Alias /sogo.woa/WebServerResources/ \
+ /usr/lib/GNUstep/SOGo/WebServerResources/
+Alias /SOGo.woa/WebServerResources/ \
+ /usr/lib/GNUstep/SOGo/WebServerResources/
+Alias /SOGO.woa/WebServerResources/ \
+ /usr/lib/GNUstep/SOGo/WebServerResources/
+
+
+ SetHandler default-handler
+
+
+
+ SetHandler default-handler
+
+
+
+ SetHandler default-handler
+
+
+
+ SetHandler default-handler
+
+
+
+ SetHandler default-handler
+
+
+AliasMatch /SOGo/so/ControlPanel/Products/(.*)/Resources/(.*) \
+ /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2
+
+
+ BalancerMember http://127.0.0.1:20000 retry=1 max=1 timeout=120
+# If you enable those, don't forget the enable the spawning of multiple SOGo
+# processes. With Redhat-based distributions, this is done by setting the
+# "PREFORK" variable in /etc/sysconfig/sogo to the amount of processes as
+# value.
+# BalancerMember http://127.0.0.1:20001 retry=1 max=1 timeout=120
+# BalancerMember http://127.0.0.1:20002 retry=1 max=1 timeout=120
+ ProxySet lbmethod=byrequests maxattempts=1
+ Order allow,deny
+ Allow from all
+
+
+SetEnv proxy-nokeepalive 1
+ProxyRequests Off
+ProxyPass /SOGo balancer://sogocluster/SOGo
diff --git a/ChangeLog b/ChangeLog
index 0a0878069..7b40d8160 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-17 Cyril Robert
+
+ * UI/Scheduler/UIxCalListingActions.m: Added support for new user default:
+ ShowCompletedTasks.
+
2009-08-17 Ludovic Marcotte
* SoObjects/SOGo/LDAPSource.m
diff --git a/UI/Scheduler/UIxCalListingActions.m b/UI/Scheduler/UIxCalListingActions.m
index 9dcb76dcd..3e06507a6 100644
--- a/UI/Scheduler/UIxCalListingActions.m
+++ b/UI/Scheduler/UIxCalListingActions.m
@@ -27,6 +27,7 @@
#import
#import
#import
+#import
#import
#import
@@ -967,9 +968,10 @@ _computeBlocksPosition (NSArray *blocks)
- (WOResponse *) tasksListAction
{
+ NSUserDefaults *ud;
NSEnumerator *tasks;
NSMutableArray *filteredTasks, *filteredTask;
- BOOL showCompleted;
+ BOOL showCompleted, setUserDefault;
NSArray *task;
int statusCode;
unsigned int endDateStamp;
@@ -982,6 +984,15 @@ _computeBlocksPosition (NSArray *blocks)
tasks = [[self _fetchFields: tasksFields
forComponentOfType: @"vtodo"] objectEnumerator];
showCompleted = [[request formValueForKey: @"show-completed"] intValue];
+ setUserDefault = [[request formValueForKey: @"setud"] intValue];
+ if (setUserDefault)
+ {
+ ud = [[context activeUser] userDefaults];
+ [ud setObject: [NSNumber numberWithInt: showCompleted]
+ forKey: @"ShowCompletedTasks"];
+ [ud synchronize];
+ }
+
while (task = [tasks nextObject])
{
diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js
index f2a47a951..0b3936bee 100644
--- a/UI/WebServerResources/SchedulerUI.js
+++ b/UI/WebServerResources/SchedulerUI.js
@@ -7,7 +7,7 @@ var listFilter = 'view_today';
var listOfSelection = null;
var selectedCalendarCell;
-var showCompletedTasks = 0;
+var showCompletedTasks;;
var currentDay = '';
@@ -1354,9 +1354,12 @@ function refreshEvents() {
+ "&filterpopup=" + listFilter);
}
-function refreshTasks() {
+function refreshTasks(setUserDefault) {
+ var url = "taskslist?show-completed=" + showCompletedTasks;
+ if (setUserDefault == 1)
+ url += "&setud=1";
refreshAlarms();
- return _loadTasksHref("taskslist?show-completed=" + showCompletedTasks);
+ return _loadTasksHref(url);
}
function refreshEventsAndDisplay() {
@@ -1560,7 +1563,7 @@ function changeMonthCalendarDisplayOfSelectedDay(node) {
function onShowCompletedTasks(event) {
showCompletedTasks = (this.checked ? 1 : 0);
- return refreshTasks();
+ return refreshTasks(1);
}
function updateTaskStatus(event) {
@@ -2039,6 +2042,8 @@ function configureLists() {
var input = $("showHideCompletedTasks");
input.observe("click", onShowCompletedTasks);
+ if (showCompletedTasks)
+ input.checked = true;
list = $("eventsList");
list.multiselect = true;
@@ -2123,6 +2128,7 @@ function drawNowLine () {
function initCalendars() {
sorting["attribute"] = "start";
sorting["ascending"] = true;
+ showCompletedTasks = UserDefaults['ShowCompletedTasks'];
if (!$(document.body).hasClassName("popup")) {
var node = $("filterpopup");
diff --git a/debian/control b/debian/control
index 07a1934a1..e467e416a 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Standards-Version: 3.8.2
Package: sogo
Section: web
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, tmpreaper
+Depends: ${shlibs:Depends}, ${misc:Depends}, tmpreaper, apache2
Suggests: nginx
Description: a modern and scalable groupware
SOGo is a groupware server built around OpenGroupware.org (OGo) and
diff --git a/debian/rules b/debian/rules
index b90bf7ab4..af4f59612 100755
--- a/debian/rules
+++ b/debian/rules
@@ -49,6 +49,7 @@ install-arch: build-arch
cp Scripts/sogod-wrapper debian/tmp/usr/sbin/sogod-wrapper
mkdir -p debian/tmp/usr/share/lintian/overrides
cp debian/sogo.overrides debian/tmp/usr/share/lintian/overrides/sogo
+ cp Apache/SOGo-debian.conf /etc/apache2/conf.d/SOGo.conf
binary-indep: build-indep install-indep