See ChangeLog.
Monotone-Parent: 66db9463cbafa20e7fce07829dca8d5d59f33165 Monotone-Revision: aa47b57f3bbc833ffcc7199f21b79f0453a1cd87 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2010-06-29T20:21:48 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
f291320413
commit
0ff309bb15
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
||||||
|
2010-06-29 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
|
* UI/WebServerResources/UIxCalendarProperties.js
|
||||||
|
(onLoadCalendarProperties): we now make use of tabs in the
|
||||||
|
properties window.
|
||||||
|
|
||||||
|
* UI/Scheduler/UIxCalendarProperties.m (-isPublicAccessEnabled):
|
||||||
|
new method, copied from Common/UIxAclEditor.m.
|
||||||
|
(-_basePublicCalDAVURL): new method that return the public base
|
||||||
|
URL of the calendar.
|
||||||
|
(-publicCalDavURL, -publicWebDavICSURL, -publicWebDavXMLURL): new
|
||||||
|
methods to return the various public URLs associated to the calendar.
|
||||||
|
|
||||||
|
* SoObjects/SOGo/SOGoGCSFolder.m (-publicDavURL): new method to
|
||||||
|
return the public DAV URL of the folder.
|
||||||
|
|
||||||
2010-06-28 Francis Lachapelle <flachapelle@inverse.ca>
|
2010-06-28 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
* UI/Contacts/UIxContactEditor.m (-initSnapshot, -_saveSnapshot):
|
* UI/Contacts/UIxContactEditor.m (-initSnapshot, -_saveSnapshot):
|
||||||
|
|
|
@ -113,6 +113,7 @@
|
||||||
- (void) sendFolderAdvisoryTemplate: (NSString *) template;
|
- (void) sendFolderAdvisoryTemplate: (NSString *) template;
|
||||||
|
|
||||||
/* DAV */
|
/* DAV */
|
||||||
|
- (NSURL *) publicDavURL;
|
||||||
- (NSURL *) realDavURL;
|
- (NSURL *) realDavURL;
|
||||||
|
|
||||||
- (NSDictionary *) davSQLFieldsTable;
|
- (NSDictionary *) davSQLFieldsTable;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* SOGoGCSFolder.m - this file is part of SOGo
|
/* SOGoGCSFolder.m - this file is part of SOGo
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2005 SKYRIX Software AG
|
* Copyright (C) 2004-2005 SKYRIX Software AG
|
||||||
* Copyright (C) 2006-2009 Inverse inc.
|
* Copyright (C) 2006-2010 Inverse inc.
|
||||||
*
|
*
|
||||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
*
|
*
|
||||||
|
@ -419,6 +419,21 @@ static NSArray *childRecordFields = nil;
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSURL *) publicDavURL
|
||||||
|
{
|
||||||
|
NSMutableArray *newPath;
|
||||||
|
NSURL *davURL;
|
||||||
|
|
||||||
|
davURL = [self realDavURL];
|
||||||
|
newPath = [NSMutableArray arrayWithArray: [[davURL path] componentsSeparatedByString: @"/"]];
|
||||||
|
[newPath insertObject: @"public" atIndex: 3];
|
||||||
|
davURL = [[NSURL alloc] initWithScheme: [davURL scheme]
|
||||||
|
host: [davURL host]
|
||||||
|
path: [newPath componentsJoinedByString: @"/"]];
|
||||||
|
|
||||||
|
return davURL;
|
||||||
|
}
|
||||||
|
|
||||||
- (NSURL *) realDavURL
|
- (NSURL *) realDavURL
|
||||||
{
|
{
|
||||||
NSURL *realDavURL, *currentDavURL;
|
NSURL *realDavURL, *currentDavURL;
|
||||||
|
|
|
@ -530,7 +530,8 @@ vtodo_class2 = "(Confidential task)";
|
||||||
"Show tasks" = "Show tasks";
|
"Show tasks" = "Show tasks";
|
||||||
|
|
||||||
"Links to this Calendar" = "Links to this Calendar";
|
"Links to this Calendar" = "Links to this Calendar";
|
||||||
"CalDAV url" = "CalDAV url";
|
"Authenticated User Access" = "Authenticated User Access";
|
||||||
|
"CalDAV URL" = "CalDAV URL";
|
||||||
"WebDAV ICS URL" = "WebDAV ICS URL";
|
"WebDAV ICS URL" = "WebDAV ICS URL";
|
||||||
"WebDAV XML URL" = "WebDAV XML URL";
|
"WebDAV XML URL" = "WebDAV XML URL";
|
||||||
|
|
||||||
|
|
|
@ -530,7 +530,8 @@ vtodo_class2 = "(Tâche confidentielle)";
|
||||||
"Show tasks" = "Afficher les tâches";
|
"Show tasks" = "Afficher les tâches";
|
||||||
|
|
||||||
"Links to this Calendar" = "Liens vers cet agenda";
|
"Links to this Calendar" = "Liens vers cet agenda";
|
||||||
"CalDAV url" = "Accès en CalDAV";
|
"Authenticated User Access" = "Accès aux utilisateurs authentifiés";
|
||||||
|
"CalDAV URL" = "Accès en CalDAV";
|
||||||
"WebDAV ICS URL" = "Représentation ICS en WebDAV";
|
"WebDAV ICS URL" = "Représentation ICS en WebDAV";
|
||||||
"WebDAV XML URL" = "Représentation XML en WebDAV";
|
"WebDAV XML URL" = "Représentation XML en WebDAV";
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
@interface UIxCalendarProperties : UIxComponent
|
@interface UIxCalendarProperties : UIxComponent
|
||||||
{
|
{
|
||||||
SOGoAppointmentFolder *calendar;
|
SOGoAppointmentFolder *calendar;
|
||||||
NSString *baseCalDAVURL;
|
NSString *baseCalDAVURL, *basePublicCalDAVURL;
|
||||||
BOOL reloadTasks;
|
BOOL reloadTasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* UIxCalendarProperties.m - this file is part of SOGo
|
/* UIxCalendarProperties.m - this file is part of SOGo
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2009 Inverse inc.
|
* Copyright (C) 2008-2010 Inverse inc.
|
||||||
*
|
*
|
||||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
*
|
*
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#import <SOGo/SOGoUser.h>
|
#import <SOGo/SOGoUser.h>
|
||||||
#import <SOGo/SOGoUserSettings.h>
|
#import <SOGo/SOGoUserSettings.h>
|
||||||
|
#import <SOGo/SOGoSystemDefaults.h>
|
||||||
#import <Appointments/SOGoAppointmentFolder.h>
|
#import <Appointments/SOGoAppointmentFolder.h>
|
||||||
#import <Appointments/SOGoWebAppointmentFolder.h>
|
#import <Appointments/SOGoWebAppointmentFolder.h>
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
{
|
{
|
||||||
calendar = [self clientObject];
|
calendar = [self clientObject];
|
||||||
baseCalDAVURL = nil;
|
baseCalDAVURL = nil;
|
||||||
|
basePublicCalDAVURL = nil;
|
||||||
reloadTasks = NO;
|
reloadTasks = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +52,7 @@
|
||||||
- (void) dealloc
|
- (void) dealloc
|
||||||
{
|
{
|
||||||
[baseCalDAVURL release];
|
[baseCalDAVURL release];
|
||||||
|
[basePublicCalDAVURL release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,6 +189,13 @@
|
||||||
return ([userLogin isEqualToString: [calendar ownerInContext: context]]);
|
return ([userLogin isEqualToString: [calendar ownerInContext: context]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL) isPublicAccessEnabled
|
||||||
|
{
|
||||||
|
// NOTE: This method is the same found in Common/UIxAclEditor.m
|
||||||
|
return [[SOGoSystemDefaults sharedSystemDefaults]
|
||||||
|
enablePublicAccess];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) isWebCalendar
|
- (BOOL) isWebCalendar
|
||||||
{
|
{
|
||||||
return ([calendar isKindOfClass: [SOGoWebAppointmentFolder class]]);
|
return ([calendar isKindOfClass: [SOGoWebAppointmentFolder class]]);
|
||||||
|
@ -253,6 +263,23 @@
|
||||||
return baseCalDAVURL;
|
return baseCalDAVURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSString *) _basePublicCalDAVURL
|
||||||
|
{
|
||||||
|
NSString *davURL;
|
||||||
|
|
||||||
|
if (!basePublicCalDAVURL)
|
||||||
|
{
|
||||||
|
davURL = [[calendar publicDavURL] absoluteString];
|
||||||
|
if ([davURL hasSuffix: @"/"])
|
||||||
|
basePublicCalDAVURL = [davURL substringToIndex: [davURL length] - 1];
|
||||||
|
else
|
||||||
|
basePublicCalDAVURL = davURL;
|
||||||
|
[basePublicCalDAVURL retain];
|
||||||
|
}
|
||||||
|
|
||||||
|
return basePublicCalDAVURL;
|
||||||
|
}
|
||||||
|
|
||||||
- (NSString *) calDavURL
|
- (NSString *) calDavURL
|
||||||
{
|
{
|
||||||
return [NSString stringWithFormat: @"%@/", [self _baseCalDAVURL]];
|
return [NSString stringWithFormat: @"%@/", [self _baseCalDAVURL]];
|
||||||
|
@ -268,4 +295,19 @@
|
||||||
return [NSString stringWithFormat: @"%@.xml", [self _baseCalDAVURL]];
|
return [NSString stringWithFormat: @"%@.xml", [self _baseCalDAVURL]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSString *) publicCalDavURL
|
||||||
|
{
|
||||||
|
return [NSString stringWithFormat: @"%@/", [self _basePublicCalDAVURL]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) publicWebDavICSURL
|
||||||
|
{
|
||||||
|
return [NSString stringWithFormat: @"%@.ics", [self _basePublicCalDAVURL]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) publicWebDavXMLURL
|
||||||
|
{
|
||||||
|
return [NSString stringWithFormat: @"%@.xml", [self _basePublicCalDAVURL]];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -13,7 +13,17 @@
|
||||||
<form const:href="saveProperties" name="propertiesform" id="propertiesform">
|
<form const:href="saveProperties" name="propertiesform" id="propertiesform">
|
||||||
<input type="hidden" const:name="calendarID" const:id="calendarID"
|
<input type="hidden" const:name="calendarID" const:id="calendarID"
|
||||||
var:value="calendarID"/>
|
var:value="calendarID"/>
|
||||||
<div id="propertiesView">
|
<div class="tabsContainer" id="propertiesTabs">
|
||||||
|
<ul>
|
||||||
|
<li target="propertiesView"><span>
|
||||||
|
<var:string label:value="Properties" /></span></li>
|
||||||
|
<li target="davLinksView"><span>
|
||||||
|
<var:string label:value="Links to this Calendar"/></span></li>
|
||||||
|
</ul>
|
||||||
|
<div class="tabs">
|
||||||
|
<div id="propertiesView" class="tab">
|
||||||
|
|
||||||
|
<!--<div id="propertiesView">-->
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend><var:string label:value="Properties"/></legend>
|
<legend><var:string label:value="Properties"/></legend>
|
||||||
<div><span class="label"><var:string label:value="Name:"/></span
|
<div><span class="label"><var:string label:value="Name:"/></span
|
||||||
|
@ -22,12 +32,6 @@
|
||||||
class="textField"
|
class="textField"
|
||||||
var:value="calendarName"
|
var:value="calendarName"
|
||||||
/></span></div>
|
/></span></div>
|
||||||
<var:if condition="isWebCalendar"
|
|
||||||
><div const:id="webCalendarUrl"><span class="label"
|
|
||||||
><var:string label:value="URL:"/></span
|
|
||||||
><span class="content" var:title="webCalendarURL"
|
|
||||||
><a var:href="webCalendarURL" target="_new"><var:string var:value="webCalendarURL"/></a>
|
|
||||||
</span></div></var:if>
|
|
||||||
<div><span class="label"><var:string
|
<div><span class="label"><var:string
|
||||||
label:value="Color:"
|
label:value="Color:"
|
||||||
/></span><span class="content"
|
/></span><span class="content"
|
||||||
|
@ -98,17 +102,39 @@
|
||||||
/><var:string label:value="Reload on login"
|
/><var:string label:value="Reload on login"
|
||||||
/></label></div></var:if>
|
/></label></div></var:if>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<div id="davLinksView" class="tab">
|
||||||
|
<var:if condition="isWebCalendar"
|
||||||
|
><fieldset id="webCalendarUrl">
|
||||||
|
<legend><var:string label:value="URL:"/></legend>
|
||||||
|
<div><a const:class="clickableLink" var:href="webCalendarURL" var:title="webCalendarURL"
|
||||||
|
target="_new"><var:string var:value="webCalendarURL"/></a></div>
|
||||||
|
</fieldset
|
||||||
|
></var:if>
|
||||||
<var:if condition="isWebCalendar" const:negate="YES"
|
<var:if condition="isWebCalendar" const:negate="YES"
|
||||||
><fieldset id="davLinks">
|
><fieldset id="authenticatedLinks">
|
||||||
<legend><var:string label:value="Links to this Calendar"/></legend>
|
<legend><var:string label:value="Authenticated User Access"/></legend>
|
||||||
<a const:class="clickableLink" var:href="calDavURL"
|
<div><a const:class="clickableLink" var:href="calDavURL" var:title="calDavURL"
|
||||||
><var:string label:value="CalDAV url"/></a><br/>
|
><var:string label:value="CalDAV URL"/></a><br/>
|
||||||
<a const:class="clickableLink" var:href="webDavICSURL"
|
<a const:class="clickableLink" var:href="webDavICSURL" var:title="webDavICSURL"
|
||||||
><var:string label:value="WebDAV ICS URL"/></a><br/>
|
><var:string label:value="WebDAV ICS URL"/></a><br/>
|
||||||
<a const:class="clickableLink" var:href="webDavXMLURL"
|
<a const:class="clickableLink" var:href="webDavXMLURL" var:title="webDavXMLURL"
|
||||||
><var:string label:value="WebDAV XML URL"/></a>
|
><var:string label:value="WebDAV XML URL"/></a></div>
|
||||||
</fieldset></var:if>
|
</fieldset>
|
||||||
|
<var:if condition="isPublicAccessEnabled"
|
||||||
|
><fieldset id="publicLinks">
|
||||||
|
<legend><var:string label:value="Public Access"/></legend>
|
||||||
|
<div><a const:class="clickableLink" var:href="publicCalDavURL" var:title="publicCalDavURL"
|
||||||
|
><var:string label:value="CalDAV URL"/></a><br/>
|
||||||
|
<a const:class="clickableLink" var:href="publicWebDavICSURL" var:title="publicWebDavICSURL"
|
||||||
|
><var:string label:value="WebDAV ICS URL"/></a><br/>
|
||||||
|
<a const:class="clickableLink" var:href="publicWebDavXMLURL" var:title="publicWebDavXMLURL"
|
||||||
|
><var:string label:value="WebDAV XML URL"/></a></div>
|
||||||
|
</fieldset
|
||||||
|
></var:if
|
||||||
|
></var:if>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="buttons">
|
<div id="buttons">
|
||||||
<a href="#" class="button actionButton" id="okButton"
|
<a href="#" class="button actionButton" id="okButton"
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
DIV#propertiesView
|
|
||||||
{ overflow: hidden;
|
|
||||||
padding: 5px 5px 0 5px; }
|
|
||||||
|
|
||||||
DIV
|
DIV
|
||||||
{ clear: both; }
|
{ clear: both; }
|
||||||
|
|
||||||
|
@ -43,7 +39,10 @@ BUTTON#colorButton
|
||||||
height: 18px; }
|
height: 18px; }
|
||||||
|
|
||||||
DIV#buttons
|
DIV#buttons
|
||||||
{ padding: 10px;
|
{ position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
right: 5px;
|
||||||
|
padding: 10px;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
text-align: right; }
|
text-align: right; }
|
||||||
|
|
||||||
|
@ -53,9 +52,6 @@ INPUT#calendarSyncTag
|
||||||
LABEL
|
LABEL
|
||||||
{ white-space: nowrap; }
|
{ white-space: nowrap; }
|
||||||
|
|
||||||
#davLinks A
|
|
||||||
{ margin-left: 60px; }
|
|
||||||
|
|
||||||
#webCalendarUrl SPAN.content
|
#webCalendarUrl SPAN.content
|
||||||
{ white-space: nowrap;
|
{ white-space: nowrap;
|
||||||
overflow: hidden; }
|
overflow: hidden; }
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
function onLoadCalendarProperties() {
|
function onLoadCalendarProperties() {
|
||||||
|
var tabsContainer = $("propertiesTabs");
|
||||||
|
var controller = new SOGoTabsController();
|
||||||
|
controller.attachToTabsContainer(tabsContainer);
|
||||||
|
|
||||||
var colorButton = $("colorButton");
|
var colorButton = $("colorButton");
|
||||||
var calendarColor = $("calendarColor");
|
var calendarColor = $("calendarColor");
|
||||||
colorButton.setStyle({ "backgroundColor": calendarColor.value, display: "inline" });
|
colorButton.setStyle({ "backgroundColor": calendarColor.value, display: "inline" });
|
||||||
|
|
|
@ -94,11 +94,11 @@ TABLE
|
||||||
BUTTON#colorButton
|
BUTTON#colorButton
|
||||||
{ margin-top: 2px; }
|
{ margin-top: 2px; }
|
||||||
|
|
||||||
DIV#propertiesView FIELDSET
|
DIV#propertiesTabs FIELDSET
|
||||||
{ margin: 0.5em;
|
{ margin: 0.5em;
|
||||||
padding: 5px; }
|
padding: 5px; }
|
||||||
|
|
||||||
DIV#propertiesView LEGEND
|
DIV#propertiesTabs LEGEND
|
||||||
{ margin-bottom: 5px; }
|
{ margin-bottom: 5px; }
|
||||||
|
|
||||||
/* UIxMailPartICalViewer */
|
/* UIxMailPartICalViewer */
|
||||||
|
|
Loading…
Reference in New Issue