See ChangeLog
Monotone-Parent: bb83e15abbaa6a9134aefc67b7bb671c74735ea4 Monotone-Revision: 574f52308bd6e344b897fdc217aa41c480108da3 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-03-19T02:42:35 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
ceecaa6563
commit
a05c370eb4
|
@ -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 |
|
@ -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.";
|
|
@ -23,3 +23,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.";
|
|
@ -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.";
|
|
@ -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.";
|
|
@ -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.";
|
|
@ -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 */
|
||||
|
|
|
@ -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.";
|
|
@ -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/>
|
||||
<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/"><img const:alt="*" rsrc:src="browser_firefox.gif"/><var:string label:value="Download"/> Firefox</a></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/"><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>
|
||||
<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/"><img const:alt="*" rsrc:src="browser_safari.gif"/><var:string label:value="Download"/> Safari 3</a></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>
|
||||
|
|
|
@ -9,20 +9,37 @@
|
|||
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/>
|
||||
<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>
|
||||
<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><br/>
|
||||
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" /><br/></label>
|
||||
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"
|
||||
|
@ -31,10 +48,17 @@
|
|||
var:value="item"
|
||||
string="languageText"
|
||||
label:noSelectionString="choose"
|
||||
/><br/></label>
|
||||
<div id="loginButton">
|
||||
/></label>
|
||||
<label>
|
||||
<input class="button" id="submit" name="submit" type="submit" label:value="Connect" />
|
||||
</div>
|
||||
<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>
|
||||
|
||||
</div>
|
||||
</form
|
||||
><img const:alt="*" id="preparedAnimation" rsrc:src="busy.gif"/>
|
||||
|
|
|
@ -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,
|
||||
|
@ -59,7 +122,10 @@ P.browser
|
|||
border-left: 1px solid #888;
|
||||
border-right: 1px solid #eee;
|
||||
border-bottom: 1px solid #eee;
|
||||
line-height: 32px; }
|
||||
line-height: 32px;
|
||||
padding-right: 5px; }
|
||||
|
||||
P.browser img
|
||||
{ padding: 2px; }
|
||||
P.browser IMG
|
||||
{ padding: 0 2px;
|
||||
margin: 0;
|
||||
vertical-align: middle; }
|
||||
|
|
|
@ -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,7 +29,8 @@ 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
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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); }
|
||||
|
|
Loading…
Reference in New Issue