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