See ChangeLog

Monotone-Parent: bb83e15abbaa6a9134aefc67b7bb671c74735ea4
Monotone-Revision: 574f52308bd6e344b897fdc217aa41c480108da3

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2009-03-19T02:42:35
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Francis Lachapelle 2009-03-19 02:42:35 +00:00
parent ceecaa6563
commit a05c370eb4
14 changed files with 256 additions and 79 deletions

View File

@ -1,3 +1,11 @@
2009-03-18 Francis Lachapelle <flachapelle@inverse.ca>
* UI/MainUI/SOGoRootPage.m ([SOGoRootPage -version]): new method
that returns the application version.
* iCalDateTime.m ([iCalDateTime -dateTime]): when not defined, the
timezone is now guessed from the date of the current object.
2009-03-18 Ludovic Marcotte <lmarcotte@inverse.ca>
* Updated the documentation for the SOGo

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -23,3 +23,12 @@
"German" = "Duits";
"Italian" = "Italiaans";
"Spanish" = "Spaans";
"About" = "About";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -22,4 +22,13 @@
"French" = "French";
"German" = "German";
"Italian" = "Italian";
"Spanish" = "Spanish";
"Spanish" = "Spanish";
"About" = "About";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -23,3 +23,12 @@
"German" = "Allemand";
"Italian" = "Italien";
"Spanish" = "Espagnol";
"About" = "À propos";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -22,3 +22,12 @@
"German" = "Deutsch";
"Italian" = "Italienisch";
"Spanish" = "Spanisch";
"About" = "About";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -22,3 +22,12 @@
"German" = "German";
"Italian" = "Italiano";
"Spanish" = "Spanish";
"About" = "About";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -197,5 +197,17 @@ static NSArray *supportedLanguages = nil;
return text;
}
- (NSString *) version
{
NSString *aString;
aString = [NSString stringWithFormat: @"%d.%d.%d",
SOGO_MAJOR_VERSION,
SOGO_MINOR_VERSION,
SOGO_SUBMINOR_VERSION];
return aString;
}
@end /* SOGoRootPage */

View File

@ -25,3 +25,12 @@
"German" = "German";
"Italian" = "Italian";
"Spanish" = "Spanish";
"About" = "About";
"AboutBox" = "SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.<br/><br/>
Copyright © 2006-2009 Inverse inc.<br/>
Copyright © 2002-2005 SKYRIX Software AG<br/><br/>
This software are distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2.<br/>
Parts of this software are distributed under the GNU LGPL version 2.<br/><br/>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.";

View File

@ -8,17 +8,25 @@
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label">
<div id="loginScreen">
<img const:alt="*" 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 const:alt="*" 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 const:alt="*" 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 const:alt="*" 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 const:alt="*" rsrc:src="browser_safari.gif"/><var:string label:value="Download"/> Safari 3</a></p>
</var:if>
<table>
<tr>
<td>
<img const:alt="*" id="splash" rsrc:src="sogo-bg.png"/>
</td>
<td id="loginCell" width="250">
<p><var:string label:value="browserNotCompatible"/></p>
<p class="browser"><a href="http://www.getfirefox.com/"><var:string label:value="Download"/> Firefox</a> <img const:alt="*" rsrc:src="browser_firefox.gif" /></p>
<var:if condition="isIE7Compatible">
<p><var:string label:value="alternativeBrowsers"/></p>
<p class="browser"><a href="http://www.microsoft.com/ie/download/"><var:string label:value="Download"/> Internet Explorer 7</a> <img const:alt="*" rsrc:src="browser_ie.gif" valign="middle" /></p>
<p class="browser"><a href="http://www.apple.com/safari/download/"><var:string label:value="Download"/> Safari 3</a> <img const:alt="*" rsrc:src="browser_safari.gif" valign="middle" /></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/"><var:string label:value="Download"/> Safari 3</a> <img const:alt="*" rsrc:src="browser_safari.gif" valign="middle" /></p>
</var:if>
</td>
</tr>
</table>
</div>
</container>

View File

@ -9,32 +9,56 @@
xmlns:label="OGo:label"
const:popup="YES"
><var:string var:value="doctype" const:escapeHTML="NO"/>
<div id="aboutBox" style="display:none;">
<div>
<p class="logo"><img const:alt="Scalable OGo" rsrc:src="sogo-logo.png"/></p>
<p>Version <var:string value="version"/></p>
<p class="scroll"><var:string label:value="AboutBox" const:escapeHTML="NO"/></p>
<img const:alt="Inverse" rsrc:src="inverse.png"/>
<p class="links"><a href="http://www.scalableogo.org/" target="_new">www.scalableogo.org</a> /
<a href="http://www.inverse.ca/" target="_new">www.inverse.ca</a></p>
<p><a id="aboutClose" href="#" class="button">OK</a></p>
</div>
</div>
<div id="linkBanner" class="linkbanner">
<a id="about" href="#"><var:string label:value="About" /></a>
</div>
<form id="connectForm" var:href="connectURL">
<div id="loginScreen">
<var:if condition="hasLoginSuffix"><script
type="text/javascript">var loginSuffix = '<var:string value="loginSuffix"/>';</script
></var:if>
<img const:alt="*" id="splash" rsrc:src="lori-login.jpg"/><br/><br/>
<table width="560">
<tr>
<td>
<img const:alt="*" id="splash" rsrc:src="sogo-logo.png"/>
</td>
<td id="loginCell" width="230">
<label><var:string label:value="Username:"/><br/>
<input class="textField" id="userName" name="userName"
type="text" var:value="userName" /></label>
<label><var:string label:value="Password:"/><br/>
<input class="textField" id="password"
name="password" type="password" var:value="password" /></label>
<label><var:string label:value="Language:"/><br/>
<var:popup const:id="language" const:name="language"
list="languages"
item="item"
var:selection="item"
var:value="item"
string="languageText"
label:noSelectionString="choose"
/></label>
<label>
<input class="button" id="submit" name="submit" type="submit" label:value="Connect" />
<div id="animation"><!-- animated gif! --></div>
</label>
</td>
</tr>
</table>
<p id="noCookiesErrorMessage" style="display: none;"><var:string label:value="cookiesNotEnabled"/></p>
<p id="loginErrorMessage" style="display: none;"><var:string label:value="Wrong username or password."/></p>
<label><var:string label:value="Username:"/><br/>
<input class="textField" id="userName" name="userName"
type="text" var:value="userName" /></label><br/>
<label><var:string label:value="Password:"/><br/>
<input class="textField" id="password"
name="password" type="password" var:value="password" /><br/></label>
<label><var:string label:value="Language:"/><br/>
<var:popup const:id="language" const:name="language"
list="languages"
item="item"
var:selection="item"
var:value="item"
string="languageText"
label:noSelectionString="choose"
/><br/></label>
<div id="loginButton">
<input class="button" id="submit" name="submit" type="submit" label:value="Connect" />
</div>
</div>
</form
><img const:alt="*" id="preparedAnimation" rsrc:src="busy.gif"/>

View File

@ -1,51 +1,114 @@
BODY
{ background-color: #999;
{ background-color: #dad3cc;
text-align: center; }
IMG#preparedAnimation
{
width: 0px;
height: 0px;
}
{ width: 0px;
height: 0px; }
DIV#loginScreen
{
background-color: #d4d0c8;
margin: 0px auto;
margin-top: 5em;
DIV#aboutBox
{ position: absolute;
z-index: 1000;
left: 0px;
width: 100%;
text-align: center; }
DIV#aboutBox IMG
{ margin-top: 20px; }
DIV#aboutBox DIV
{ background-color: #fff;
border: 1px solid #222;
margin: auto;
padding-bottom: 20px;
width: 550px; }
A,
A:link,
A:visited
{ color: #54b948; }
DIV#aboutBox DIV A.button
{ color: #000; }
DIV#aboutBox P.logo
{ background-color: #222;
margin-top: 0;
margin-bottom: 10px; }
DIV#aboutBox P.scroll
{ border: 1px solid #222;
height: 120px;
margin: auto;
padding: 5px;
border: 2px solid transparent;
width: 350px;
text-align: left;
width: 200px;
-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;
}
overflow-y: auto; }
IMG#splash
{ border: 0px;
margin: 0px;
padding: 0px;
height: 200px;
width: 200px; }
DIV#aboutBox P.links
{ margin: 0 0 20px 0; }
DIV#loginScreen INPUT.textField
{ width: 187px; }
DIV#loginButton
DIV.linkbanner
{ text-align: right; }
DIV#loginButton INPUT
{ width: auto;
margin-top: 5px; }
DIV.linkbanner A
{ padding-right: .5em; }
DIV#loginButton IMG#progressIndicator
{ float: left;
width: 16px;
DIV#loginScreen
{ clear: both;
margin: 0px auto;
padding-top: 5em;
border: 2px solid transparent;
text-align: center;
}
DIV#loginScreen TABLE
{ margin: auto; }
DIV#loginScreen TABLE TD
{ text-align: right; }
DIV#loginScreen TABLE TD#loginCell
{ border-left: 1px solid #fff;
padding-left: 10px; }
LABEL
{ display: inline-block;
padding: 10px; }
DIV#loginScreen LABEL
{ display: block;
padding: 5px; }
#animation
{ margin: 0px auto;
padding: 0px; }
IMG#splash
{ border: 0;
margin: 0px;
padding: 0px 0px 0px 0px; }
DIV#loginScreen INPUT.textField
{ border: 1px solid #333;
width: 187px; }
DIV#loginScreen INPUT.textField,
DIV#loginScreen SELECT
{ border: 1px solid #333;
-moz-border-top-colors: #333;
-moz-border-left-colors: #333;
-moz-border-right-colors: #333;
-moz-border-bottom-colors: #333;
}
DIV#loginScreen INPUT#submit
{ margin-top: 10px; }
IMG#progressIndicator
{ width: 16px;
height: 16px;
border: 0px none;
margin-top: 5px;
margin-top: 20px;
margin-left: 5px; }
#noCookiesErrorMessage,
@ -58,8 +121,11 @@ P.browser
border-top: 1px solid #888;
border-left: 1px solid #888;
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
line-height: 32px; }
border-bottom: 1px solid #eee;
line-height: 32px;
padding-right: 5px; }
P.browser img
{ padding: 2px; }
P.browser IMG
{ padding: 0 2px;
margin: 0;
vertical-align: middle; }

View File

@ -5,6 +5,13 @@ function initLogin() {
date.setTime(date.getTime() - 86400000);
document.cookie = ("0xHIGHFLYxSOGo=discard; path=/"
+ "; expires=" + date.toGMTString());
var about = $("about");
about.observe("click", function(event) { $("aboutBox").show(); });
var aboutClose = $("aboutClose");
aboutClose.observe("click", function(event) { $("aboutBox").hide(); });
var submit = $("submit");
submit.observe("click", onLoginClick);
@ -22,8 +29,9 @@ function onLoginClick(event) {
var language = $("language").value;
if (userName.length > 0) {
startAnimation($("loginButton"), $("submit"));
this.hide();
startAnimation($("animation"));
if (typeof(loginSuffix) != "undefined"
&& loginSuffix.length > 0
&& !userName.endsWith(loginSuffix))
@ -48,6 +56,7 @@ function onLoginCallback(http) {
if (http.readyState == 4) {
var noCookiesErrorMessage = $("noCookiesErrorMessage");
var loginErrorMessage = $("loginErrorMessage");
var submitBtn = $("submit");
if (isHttpStatus204(http.status)) {
// Make sure browser's cookies are enabled
@ -64,6 +73,7 @@ function onLoginCallback(http) {
if (cookieExists === 0) {
loginErrorMessage.hide();
noCookiesErrorMessage.show();
submitBtn.show();
return false;
}
@ -99,6 +109,7 @@ function onLoginCallback(http) {
else {
loginErrorMessage.show();
noCookiesErrorMessage.hide();
submitBtn.show();
}
}
}

View File

@ -6,12 +6,6 @@ FORM
{ padding: 0px;
margin: 0px; }
DIV#loginScreen
{ border: 2px solid #fff;
border-right: 2px solid #666;
border-bottom: 2px solid #666;
}
/* generic */
SPAN.disabledToolbarButton
{ filter: alpha(opacity=40); }