merge of '19a9cb7dca6866c4d759812496468f9d93e33225'

and '96effe6b8b81620e6321b228cbab54c6d0ff3555'

Monotone-Parent: 19a9cb7dca6866c4d759812496468f9d93e33225
Monotone-Parent: 96effe6b8b81620e6321b228cbab54c6d0ff3555
Monotone-Revision: 3ebb6d8ed27fdb6ba4b35f0bfcdbc625fd8620b2

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-09-19T22:03:30
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-09-19 22:03:30 +00:00
17 changed files with 133 additions and 40 deletions
+2
View File
@@ -9,7 +9,9 @@
- fixed search in message content;
- added tooltips for toolbar buttons (English and French);
- added checkmarks in live search options popup menus;
- added browser detection with recommanded alternatives;
- initial support for resizable columns in tables;
- improved IE7 and Safari support: attendees selector;
- countless bugfixes;
0.9.0-20070824
@@ -27,6 +27,11 @@
"Sorry, the user rights can not be configured for that object." = "Sorry, the user rights can not be configured for that object.";
"browserNotCompatible" = "We've detected that your browser version is currently not supported on this site. Our recommendation is to use Firefox. Link to download the most current version of this browser is provided bellow:";
"alternativeBrowsers" = "Alternatively, you can also use the following compatible browsers";
"alternativeBrowserSafari" = "Alternatively, you can also use Safari.";
"Download" = "Download";
/* generic.js */
"Unable to subscribe to that folder!"
= "Unable to subscribe to that folder!";
@@ -28,6 +28,11 @@
"Sorry, the user rights can not be configured for that object." = "Sorry, the user rights can not be configured for that object.";
"browserNotCompatible" = "La version de votre navigateur Web n'est présentement pas supportée par ce site. Nous recommandons d'utiliser Firefox. Vous trouverez un lien vers la plus récente version de ce navigateur ci-dessous:";
"alternativeBrowsers" = "Comme alternative, vous pouvez aussi utiliser les navigateurs suivants:";
"alternativeBrowserSafari" = "Comme alternative, vous pouvez aussi utiliser Safari.";
"Download" = "Télécharger";
/* generic.js */
"Unable to subscribe to that folder!" = "Impossible de s'abonner à ce dossier.";
"You cannot subscribe to a folder that you own!" = "Impossible de vous abonner à un dossier qui vous appartient.";
+5
View File
@@ -23,6 +23,7 @@
#define UIXPAGEFRAME_H
#import <SOGoUI/UIxComponent.h>
#import <NGObjWeb/WEClientCapabilities.h>
@interface WOComponent (PopupExtension)
@@ -56,6 +57,10 @@
- (void) setToolbar: (NSString *) newToolbar;
- (NSString *) toolbar;
- (BOOL) isBrowserCompatible;
- (BOOL) isIE7Compatible;
- (BOOL) isMac;
@end
#endif /* UIXPAGEFRAME_H */
+40
View File
@@ -258,4 +258,44 @@
return toolbar;
}
/* browser/os identification */
- (BOOL) isCompatibleBrowser
{
WEClientCapabilities *cc;
cc = [[context request] clientCapabilities];
//NSLog(@"Browser = %@", [cc description]);
NSLog(@"User agent = %@", [cc userAgent]);
//NSLog(@"Browser major version = %i", [cc majorVersion]);
return (
([[cc userAgentType] isEqualToString: @"IE"] && [cc majorVersion] >= 7) ||
([[cc userAgentType] isEqualToString: @"Mozilla"] && [cc majorVersion] >= 5) ||
([[cc userAgentType] isEqualToString: @"Safari"] && [cc majorVersion] >= 4)
);
}
- (BOOL) isIE7Compatible
{
WEClientCapabilities *cc;
cc = [[context request] clientCapabilities];
return ([cc isWindowsBrowser] &&
([[cc userAgent] rangeOfString: @"NT 5.1"].location != NSNotFound ||
[[cc userAgent] rangeOfString: @"NT 6"].location != NSNotFound));
}
- (BOOL) isMac
{
WEClientCapabilities *cc;
cc = [[context request] clientCapabilities];
return [cc isMacBrowser];
}
@end /* UIxPageFrame */
+5
View File
@@ -221,6 +221,11 @@ static NSString *defaultModule = nil;
date = [NSCalendarDate calendarDate];
[cookie setExpires: [date yesterday]];
[response addCookie: cookie];
[response setHeader: date forKey: @"Last-Modified"];
[response setHeader: @"no-store, no-cache, must-revalidate, max-age=0" forKey: @"Cache-Control"];
[response setHeader: @"post-check=0, pre-check=0" forKey: @"Cache-Control"];
[response setHeader: @"no-cache" forKey: @"Pragma"];
return response;
}
+1 -1
View File
@@ -358,7 +358,7 @@
{
NSArray *calendars;
calendars = [[self calendarList] valueForKey: @"folder"];
calendars = [[self calendarList] valueForKey: @"nameInContainer"];
return [calendars componentsJoinedByString: @","];
}
@@ -20,7 +20,6 @@
/><var:string value="primaryEmail" escapeHTML="NO"
/><var:string value="secondaryEmail" escapeHTML="NO"
/><var:string value="screenName" escapeHTML="NO"
/><var:string value="preferredTel" escapeHTML="NO"
/><var:string value="preferredAddress" escapeHTML="NO"
/></div
+4 -4
View File
@@ -7,10 +7,10 @@
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label"
><var:string var:value="doctype" const:escapeHTML="NO" />
><var:string var:value="doctype" const:escapeHTML="NO"/>
<form id="connectForm" var:href="connectURL">
<div id="loginScreen">
<img rsrc:src="lori-login.jpg"/><br/><br/>
<img id="splash" rsrc:src="lori-login.jpg"/><br/><br/>
<label><var:string label:value="Login:"/><br/>
<input class="textField" id="userName" name="userName"
type="text" var:value="userName" /></label><br/>
@@ -21,6 +21,6 @@
<input class="button" id="submit" name="submit" type="submit" label:value="Connect" />
</div>
</div>
</form>
<img id="preparedAnimation" rsrc:src="busy.gif"/>
</form
><img id="preparedAnimation" rsrc:src="busy.gif"/>
</var:component>
+20 -2
View File
@@ -33,8 +33,9 @@
/></var:if-ie>
</head>
<body var:class="bodyClasses">
<script type="text/javascript">
<body var:class="bodyClasses"
><var:if condition="isCompatibleBrowser"
><script type="text/javascript">
var ApplicationBaseURL = '<var:string value="applicationPath" />';
var ResourcesURL = '/SOGo.woa/WebServerResources';
<var:if condition="shortUserNameForDisplay" const:value="anonymous"
@@ -92,6 +93,23 @@
<div class="pageContent"
><var:component-content
/></div>
</var:if>
<var:if condition="isCompatibleBrowser" const:negate="YES">
<div id="loginScreen">
<img id="splash" rsrc:src="lori-login.jpg"/><br/><br/>
<p><var:string label:value="browserNotCompatible"/></p>
<p class="browser"><a href="http://www.getfirefox.com/"><img rsrc:src="browser_firefox.gif"/><var:string label:value="Download"/> Firefox</a></p>
<var:if condition="isIE7Compatible">
<p><var:string label:value="alternativeBrowsers"/></p>
<p class="browser"><a href="http://www.microsoft.com/ie/download/"><img rsrc:src="browser_ie.gif"/><var:string label:value="Download"/> Internet Explorer 7</a></p>
<p class="browser"><a href="http://www.apple.com/safari/download/"><img rsrc:src="browser_safari.gif"/><var:string label:value="Download"/> Safari 3</a></p>
</var:if>
<var:if condition="isMac">
<p><var:string label:value="alternativeBrowserSafari"/></p>
<p class="browser"><a href="http://www.apple.com/safari/download/"><img rsrc:src="browser_safari.gif"/><var:string label:value="Download"/> Safari 3</a></p>
</var:if>
</div>
</var:if>
<noscript>
<div class="javascriptPopupBackground">
</div>
+10 -8
View File
@@ -39,8 +39,8 @@ DIV#contactsListContent
left: 0px;
right: 0px;
height: 16em;
overflow: hidden;
overflow-y: auto; }
overflow: scroll;
overflow-x: hidden; }
.aptview_text
{
@@ -108,8 +108,7 @@ table.titletable td.titlecell SELECT
}
DIV#contactFoldersList
{
position: absolute;
{ position: absolute;
top: 6em;
left: 0px;
width: 15em;
@@ -130,8 +129,11 @@ UL#contactFolders
list-style-image: none;
clear: both;
cursor: default;
color: #000;
color: #000;
background: #fff;
position: absolute; /* required for Safari & IE */
top: 53px; /* leave space for the mini addressbook */
bottom: 0px;
width: 100%;
height: 100%;
margin: 0px;
@@ -141,8 +143,7 @@ UL#contactFolders
border-right: 1px solid #fff;
border-bottom: 1px solid #fff;
-moz-border-top-colors: #9c9a94 #000;
-moz-border-left-colors: #9c9a94 #000;
overflow: auto; }
-moz-border-left-colors: #9c9a94 #000; }
DIV#contactFoldersList LI
{
@@ -214,7 +215,8 @@ DIV#contactView A
DIV#contactView H3.contactCardTitle
{ display: block;
margin: .2em 0px;
margin: 0px;
padding: .2em 0px;
font-size: large;
font-weight: bold;
width: 100%;
+1
View File
@@ -614,6 +614,7 @@ function configureDragHandles() {
handle.addInterface(SOGoDragHandlesInterface);
handle.leftBlock=$("contactFoldersList");
handle.rightBlock=$("rightPanel");
handle.leftMargin = 100;
}
handle = $("rightDragHandle");
+4 -6
View File
@@ -33,8 +33,7 @@ DIV#leftPanel
}
DIV#rightPanel
{
position: absolute;
{ position: absolute;
top: 5.5em;
left: 15em;
right: 0px;
@@ -42,8 +41,7 @@ DIV#rightPanel
margin: 0px;
margin-left: 5px;
padding: 0px;
overflow: hidden;
}
overflow: hidden; }
/* top list */
DIV#mailboxContent
@@ -54,8 +52,8 @@ DIV#mailboxContent
left: 0px;
right: 0px;
height: 15.5em;
overflow: hidden;
overflow-y: auto; }
overflow: scroll;
overflow-x: hidden; }
DIV#messageContent
{ position: absolute;
+13 -2
View File
@@ -15,14 +15,13 @@ DIV#loginScreen
padding: 5px;
border: 2px solid transparent;
width: 200px;
height: 315px;
-moz-border-top-colors: #efebe7 #fff;
-moz-border-left-colors: #efebe7 #fff;
-moz-border-right-colors: #000 #9c9a94 transparent;
-moz-border-bottom-colors: #000 #9c9a94 transparent;
}
DIV#loginScreen IMG
IMG#splash
{ border: 0px;
margin: 0px;
padding: 0px;
@@ -46,3 +45,15 @@ DIV#loginButton IMG#progressIndicator
border: 0px none;
margin-top: 5px;
margin-left: 5px; }
P.browser
{ background-color: #fff;
border-top: 1px solid #888;
border-left: 1px solid #888;
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
line-height: 32px; }
P.browser img
{ padding: 2px;
vertical-align: middle; }
+12 -4
View File
@@ -20,6 +20,13 @@ DIV#freeBusyView
-moz-border-top-colors: #9c9a94 #000;
-moz-border-left-colors: #9c9a94 #000; }
TABLE#freeBusy
{ border-collapse: collapse;
table-layout: auto; }
TABLE#freeBusy THEAD TH
{ white-space: nowrap; }
TABLE#freeBusy TD,
TABLE#freeBusy TH
{ padding: 0px;
@@ -56,14 +63,14 @@ TABLE#freeBusy TR.freeBusyHeader2 TH,
TABLE#freeBusy TR.freeBusyHeader3 TH
{ text-align: left;
color: #777;
background: #fff;
border-collapse: collapse; }
background: #fff; }
TABLE#freeBusy TR.freeBusyHeader2 TH
{ width: 6em; }
{ padding-right: 2em; }
TABLE#freeBusy TR.freeBusyHeader3 TH
{ border-bottom: 1px solid #cecbff; }
{ border-left: 1px solid #fff;
border-bottom: 1px solid #cecbff; }
TABLE#freeBusy TR.attendeeModel
{ display: none; }
@@ -84,6 +91,7 @@ TABLE#freeBusy TD.noFreeBusy
SPAN.freeBusyZoneElement
{ display: block;
float: left;
clear: right;
width: 25%;
margin: 0px;
padding: 0px;
+5 -5
View File
@@ -268,9 +268,9 @@ function setSlot(tds, nbr, status) {
var td = tds[i];
var spans = $(td).childNodesWithTag("span");
if (status == '2')
spans[spannbr].addClassName("maybe-busy");
$(spans[spannbr]).addClassName("maybe-busy");
else
spans[spannbr].addClassName("busy");
$(spans[spannbr]).addClassName("busy");
}
}
@@ -282,7 +282,7 @@ function updateFreeBusyData(http) {
var tds = node.parentNode.parentNode.cells;
for (var i = 0; i < slots.length; i++) {
if (slots[i] != '0')
setSlot(tds, i, slots[i]);
setSlot(tds, i, slots[i]);
}
}
document.contactFreeBusyAjaxRequest = null;
@@ -502,14 +502,14 @@ function prepareAttendees() {
for (var i = 0; i < attendeesNames.length; i++) {
var tr = body.insertRow(i);
var td = document.createElement("td");
td.addClassName("attendees");
$(td).addClassName("attendees");
var input = document.createElement("input");
var value = "";
if (attendeesNames[i].length > 0)
value += attendeesNames[i] + " ";
value += "<" + attendeesEmails[i] + ">";
input.value = value;
input.addClassName("textField");
$(input).addClassName("textField");
input.setAttribute("modified", "0");
tr.appendChild(td);
td.appendChild(input);
+1 -7
View File
@@ -74,13 +74,7 @@ function onChangeCalendar(event) {
var form = document.forms["editform"];
var urlElems = form.getAttribute("action").split("/");
var choice = calendars[this.value];
var ownerLogin;
if (choice.indexOf(":") > -1)
ownerLogin = choice.split(":")[0];
else
ownerLogin = UserLogin;
urlElems[urlElems.length-4] = ownerLogin;
urlElems[urlElems.length-3] = choice;
form.setAttribute("action", urlElems.join("/"));
}