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>
* 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
for the new defaults SOGoBusyOffHours, which defines if periods
outside business hours should be opaque (busy).
@ -241,7 +244,7 @@
* OpenChange/MAPIStoreMailFolder.m: (moveCopy...) Cleaned up some
code and we now also correctly send notification updates for the
destination folder
2011-09-04 Ludovic Marcotte <lmarcotte@inverse.ca>
* OpenChange/MAPIStoreMapping.m: (MAPIStoreMappingTDBTraverse())
@ -251,7 +254,7 @@
indexing.tdb database (per user).
* OpenChange/MAPIStoreSOGo.m: Some cleanups to ease current and
future debugging
future debugging
2011-08-18 Francis Lachapelle <flachapelle@inverse.ca>

7
NEWS
View File

@ -2,10 +2,13 @@
---------------------
New Features
- 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
- 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
-

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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