See ChangeLog

Monotone-Parent: 517b0b095f30f6f2f92a4da5dfe0155872190daa
Monotone-Revision: b28dce204bf84148d4bd3df3df8b289cdd7a4168

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2011-09-27T20:15:06
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Francis Lachapelle 2011-09-27 20:15:06 +00:00
parent 94c033c919
commit 4359f406cb
10 changed files with 69 additions and 28 deletions

View File

@ -1,5 +1,8 @@
2011-09-27 Francis Lachapelle <flachapelle@inverse.ca> 2011-09-27 Francis Lachapelle <flachapelle@inverse.ca>
* UI/Common/UIxPageFrame.m (-userHasVacationEnabled): new method
that returns whether the user has an automatic vacation message enabled.
* SoObjects/SOGo/SOGoUserDefaults.m (-setBusyOffHours): new setter * SoObjects/SOGo/SOGoUserDefaults.m (-setBusyOffHours): new setter
for the new defaults SOGoBusyOffHours, which defines if periods for the new defaults SOGoBusyOffHours, which defines if periods
outside business hours should be opaque (busy). outside business hours should be opaque (busy).
@ -241,7 +244,7 @@
* OpenChange/MAPIStoreMailFolder.m: (moveCopy...) Cleaned up some * OpenChange/MAPIStoreMailFolder.m: (moveCopy...) Cleaned up some
code and we now also correctly send notification updates for the code and we now also correctly send notification updates for the
destination folder destination folder
2011-09-04 Ludovic Marcotte <lmarcotte@inverse.ca> 2011-09-04 Ludovic Marcotte <lmarcotte@inverse.ca>
* OpenChange/MAPIStoreMapping.m: (MAPIStoreMappingTDBTraverse()) * OpenChange/MAPIStoreMapping.m: (MAPIStoreMappingTDBTraverse())
@ -251,7 +254,7 @@
indexing.tdb database (per user). indexing.tdb database (per user).
* OpenChange/MAPIStoreSOGo.m: Some cleanups to ease current and * OpenChange/MAPIStoreSOGo.m: Some cleanups to ease current and
future debugging future debugging
2011-08-18 Francis Lachapelle <flachapelle@inverse.ca> 2011-08-18 Francis Lachapelle <flachapelle@inverse.ca>

7
NEWS
View File

@ -2,10 +2,13 @@
--------------------- ---------------------
New Features New Features
- new user defaults SOGoDefaultCalendar to specify which calendar is used when - new user defaults SOGoDefaultCalendar to specify which calendar is used when
creating an event or a task (selected, personal, first enabled). creating an event or a task (selected, personal, first enabled)
- new user defaults SOGoBusyOffHours to specify if off-hours should be
automatically added to the free-busy information
Enhancements Enhancements
- phone numbers in the contacts web module are now links (tel:). - phone numbers in the contacts web module are now links (tel:)
- revamp of the modules link banner (15-pixel taller)
Bug Fixes Bug Fixes
- -

View File

@ -506,6 +506,15 @@
return [ud language]; return [ud language];
} }
- (BOOL) userHasVacationEnabled
{
NSDictionary *vacationOptions;
vacationOptions = [[[context activeUser] userDefaults] vacationOptions];
return (vacationOptions && [[vacationOptions objectForKey: @"enabled"] boolValue]);
}
/* UserDefaults, UserSettings */ /* UserDefaults, UserSettings */
- (NSString *) _dictionaryWithKeys: (NSArray *) keys - (NSString *) _dictionaryWithKeys: (NSArray *) keys
fromSource: (SOGoDefaultsSource *) source fromSource: (SOGoDefaultsSource *) source

View File

@ -61,7 +61,8 @@
><a id="logoff" var:href="logoffPath" ><a id="logoff" var:href="logoffPath"
><var:string label:value="Disconnect"/> </a ><var:string label:value="Disconnect"/> </a
><span id="userIdentificationDisplay"> ><span id="userIdentificationDisplay">
<var:string var:value="userIdentification"/> | </span <var:if condition="userHasVacationEnabled"><img rsrc:src="mail_light_right.png" label:title="Vacation message is enabled" /></var:if>
<var:string var:value="userIdentification"/></span
></var:if> ></var:if>
<var:if condition="userHasCalendarAccess"> <var:if condition="userHasCalendarAccess">
<var:if condition="isCalendar"> <var:if condition="isCalendar">
@ -73,7 +74,7 @@
var:href="relativeCalendarPath" var:href="relativeCalendarPath"
><var:string label:value="Calendar" /></a> ><var:string label:value="Calendar" /></a>
</var:if> </var:if>
|
</var:if> </var:if>
<var:if condition="isContacts"> <var:if condition="isContacts">
<span class="active"><var:string label:value="Address Book" <span class="active"><var:string label:value="Address Book"
@ -84,7 +85,7 @@
var:href="relativeContactsPath" var:href="relativeContactsPath"
><var:string label:value="Address Book" /></a> ><var:string label:value="Address Book" /></a>
</var:if> </var:if>
|
<var:if condition="userHasMailAccess"> <var:if condition="userHasMailAccess">
<var:if condition="isMail"> <var:if condition="isMail">
<span class="active"><var:string label:value="Mail" <span class="active"><var:string label:value="Mail"
@ -94,13 +95,13 @@
<a id="mailBannerLink" var:href="relativeMailPath" <a id="mailBannerLink" var:href="relativeMailPath"
><var:string label:value="Mail" /></a> ><var:string label:value="Mail" /></a>
</var:if> </var:if>
|
</var:if> </var:if>
<a id="preferencesBannerLink" <a id="preferencesBannerLink"
var:href="relativePreferencesPath" var:href="relativePreferencesPath"
><var:string label:value="Preferences" /></a> ><var:string label:value="Preferences" /></a>
<var:if condition="isSuperUser"> <var:if condition="isSuperUser">
|
<var:if condition="isAdministration"> <var:if condition="isAdministration">
<span class="active"><var:string label:value="Administration" <span class="active"><var:string label:value="Administration"
/></span> /></span>
@ -111,7 +112,7 @@
</var:if> </var:if>
</var:if> </var:if>
<var:if condition="isUIxDebugEnabled" <var:if condition="isUIxDebugEnabled"
>| <a id="consoleBannerLink" > <a id="consoleBannerLink"
href="#"><var:string href="#"><var:string
label:value="Log Console (dev.)" /></a label:value="Log Console (dev.)" /></a
></var:if> ></var:if>

View File

@ -21,7 +21,7 @@
DIV#rightPanel DIV#rightPanel
{ position: absolute; { position: absolute;
top: 65px; top: 80px;
left: 15em; left: 15em;
margin-left: 5px; margin-left: 5px;
right: 0px; right: 0px;
@ -106,7 +106,7 @@ TABLE.titletable TD.titlecell SELECT
DIV#contactFoldersList DIV#contactFoldersList
{ position: absolute; { position: absolute;
top: 69px; top: 84px;
left: 0px; left: 0px;
width: 15em; width: 15em;
bottom: 0px; bottom: 0px;

View File

@ -22,7 +22,7 @@
DIV#leftPanel DIV#leftPanel
{ {
position: absolute; position: absolute;
top: 70px; top: 85px;
left: 0px; left: 0px;
width: 15em; width: 15em;
bottom: 0px; bottom: 0px;
@ -33,7 +33,7 @@ DIV#leftPanel
DIV#rightPanel DIV#rightPanel
{ position: absolute; { position: absolute;
top: 65px; top: 80px;
left: 15em; left: 15em;
right: 0px; right: 0px;
bottom: 0px; bottom: 0px;

View File

@ -6,6 +6,11 @@ IMG#preparedAnimation
{ width: 0px; { width: 0px;
height: 0px; } height: 0px; }
DIV.linkbanner A#about
{ float: right;
margin: 0px;
padding: 0px .5em; }
DIV#aboutBox DIV#aboutBox
{ position: absolute; { position: absolute;
z-index: 1000; z-index: 1000;

View File

@ -1,6 +1,6 @@
DIV#leftPanel DIV#leftPanel
{ position: absolute; { position: absolute;
top: 65px; top: 80px;
left: 0px; left: 0px;
width: 19.25em; width: 19.25em;
bottom: 0px; bottom: 0px;
@ -83,17 +83,17 @@ UL#tasksList LI
white-space: nowrap; } white-space: nowrap; }
UL#tasksList LI.overdue UL#tasksList LI.overdue
{ color: #f00; } { color: #f00 !important; }
UL#tasksList LI.duetoday UL#tasksList LI.duetoday
{ color: #00f; } { color: #00f !important; }
UL#tasksList LI.completed UL#tasksList LI.completed
{ text-decoration: line-through; { text-decoration: line-through;
color: #000; } color: #000; }
UL#tasksList LI.duelater UL#tasksList LI.duelater
{ color: #999; } { color: #999 !important; }
UL#tasksList LI.important SPAN UL#tasksList LI.important SPAN
{ color: #f00 !important; { color: #f00 !important;
@ -120,7 +120,7 @@ UL#tasksList LI[class~="_selected"].completed
DIV#rightPanel DIV#rightPanel
{ position: absolute; { position: absolute;
top: 65px; top: 80px;
left: 19.25em; left: 19.25em;
right: 0px; right: 0px;
bottom: 0px; bottom: 0px;

View File

@ -88,7 +88,8 @@ function _setupEvents() {
var widgets = [ "timezone", "shortDateFormat", "longDateFormat", var widgets = [ "timezone", "shortDateFormat", "longDateFormat",
"timeFormat", "weekStartDay", "dayStartTime", "dayEndTime", "timeFormat", "weekStartDay", "dayStartTime", "dayEndTime",
"firstWeek", "messageCheck", "sortByThreads", "firstWeek", "messageCheck", "sortByThreads",
"subscribedFoldersOnly", "language", "defaultCalendar" ]; "subscribedFoldersOnly", "language", "defaultCalendar",
"enableVacation" ];
for (var i = 0; i < widgets.length; i++) { for (var i = 0; i < widgets.length; i++) {
var widget = $(widgets[i]); var widget = $(widgets[i]);
if (widget) { if (widget) {

View File

@ -121,32 +121,49 @@ DIV.linkbanner
width: 100%; width: 100%;
top: 0px; top: 0px;
left: 0px; left: 0px;
height: 30px;
z-index: 100; z-index: 100;
font-size: 12px;
line-height: 26px;
color: #aaa; } color: #aaa; }
DIV.linkbanner A, DIV.linkbanner A,
DIV.linkbanner SPAN DIV.linkbanner SPAN
{ cursor: default; { float: left;
border-top: 2px solid #000;
border-bottom: 2px solid #000;
color: #ddd; color: #ddd;
text-decoration: none; text-decoration: none;
top: 0px; top: 0px;
left: 0px; left: 0px;
padding: 2px 5px; } padding: 0px 0.5em; }
DIV.linkbanner A
{ cursor: pointer; }
DIV.linkbanner SPAN DIV.linkbanner SPAN
{ color: #afafff; } { border-top: 2px solid #afafff;
border-bottom: 2px solid #000;
color: #afafff;
color: #fff;
font-weight: bold; }
DIV.linkbanner A:hover DIV.linkbanner A:hover
{ color: #dd5; } { background-color: #666;
border-top: 2px solid #666;
border-bottom: 2px solid #666; }
DIV.linkbanner A#logoff, DIV.linkbanner SPAN#userIdentificationDisplay DIV.linkbanner A#logoff, DIV.linkbanner SPAN#userIdentificationDisplay
{ float: right; { float: right;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px .5em; }
padding-right: .5em; }
DIV.linkbanner SPAN#userIdentificationDisplay DIV.linkbanner SPAN#userIdentificationDisplay
{ color: #DDDDDD; } { border-top: 2px solid #000;
color: #DDDDDD; }
DIV.linkbanner IMG
{ padding: 0px 4px; }
.linkbannerlinks .linkbannerlinks
{ vertical-align: bottom; { vertical-align: bottom;
@ -297,7 +314,7 @@ DIV#logConsole
background-color: #fff; background-color: #fff;
overflow-y: scroll; overflow-y: scroll;
color: #222; color: #222;
top: 1em; top: 30px;
left: 0px; left: 0px;
right: 0px; right: 0px;
height: 15em; } height: 15em; }
@ -839,6 +856,8 @@ DIV.tabsContainer > UL LI.active
{ background: transparent url('tab_a_active_bg.png') no-repeat scroll top right !important; } { background: transparent url('tab_a_active_bg.png') no-repeat scroll top right !important; }
DIV.tabsContainer > UL LI.active SPAN DIV.tabsContainer > UL LI.active SPAN
{ background: transparent url('tab_span_active_bg.png') no-repeat !important; } { background: transparent url('tab_span_active_bg.png') no-repeat !important; }
DIV.tabsContainer > UL LI SPAN:hover
{ cursor: pointer; }
DIV.tabsContainer > UL LI.first DIV.tabsContainer > UL LI.first
{ margin-left: -1px; { margin-left: -1px;
padding-left: -1px; } /* Firefox will complain */ padding-left: -1px; } /* Firefox will complain */