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>
|
||||
|
||||
* UI/Contacts/UIxContactEditor.m (-initSnapshot, -_saveSnapshot):
|
||||
|
|
|
@ -113,6 +113,7 @@
|
|||
- (void) sendFolderAdvisoryTemplate: (NSString *) template;
|
||||
|
||||
/* DAV */
|
||||
- (NSURL *) publicDavURL;
|
||||
- (NSURL *) realDavURL;
|
||||
|
||||
- (NSDictionary *) davSQLFieldsTable;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* SOGoGCSFolder.m - this file is part of SOGo
|
||||
*
|
||||
* 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>
|
||||
*
|
||||
|
@ -419,6 +419,21 @@ static NSArray *childRecordFields = nil;
|
|||
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, *currentDavURL;
|
||||
|
|
|
@ -530,7 +530,8 @@ vtodo_class2 = "(Confidential task)";
|
|||
"Show tasks" = "Show tasks";
|
||||
|
||||
"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 XML URL" = "WebDAV XML URL";
|
||||
|
||||
|
|
|
@ -530,7 +530,8 @@ vtodo_class2 = "(Tâche confidentielle)";
|
|||
"Show tasks" = "Afficher les tâches";
|
||||
|
||||
"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 XML URL" = "Représentation XML en WebDAV";
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
@interface UIxCalendarProperties : UIxComponent
|
||||
{
|
||||
SOGoAppointmentFolder *calendar;
|
||||
NSString *baseCalDAVURL;
|
||||
NSString *baseCalDAVURL, *basePublicCalDAVURL;
|
||||
BOOL reloadTasks;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* 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>
|
||||
*
|
||||
|
@ -28,6 +28,7 @@
|
|||
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <SOGo/SOGoUserSettings.h>
|
||||
#import <SOGo/SOGoSystemDefaults.h>
|
||||
#import <Appointments/SOGoAppointmentFolder.h>
|
||||
#import <Appointments/SOGoWebAppointmentFolder.h>
|
||||
|
||||
|
@ -41,6 +42,7 @@
|
|||
{
|
||||
calendar = [self clientObject];
|
||||
baseCalDAVURL = nil;
|
||||
basePublicCalDAVURL = nil;
|
||||
reloadTasks = NO;
|
||||
}
|
||||
|
||||
|
@ -50,6 +52,7 @@
|
|||
- (void) dealloc
|
||||
{
|
||||
[baseCalDAVURL release];
|
||||
[basePublicCalDAVURL release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
@ -186,6 +189,13 @@
|
|||
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
|
||||
{
|
||||
return ([calendar isKindOfClass: [SOGoWebAppointmentFolder class]]);
|
||||
|
@ -253,6 +263,23 @@
|
|||
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
|
||||
{
|
||||
return [NSString stringWithFormat: @"%@/", [self _baseCalDAVURL]];
|
||||
|
@ -268,4 +295,19 @@
|
|||
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
|
||||
|
|
|
@ -13,7 +13,17 @@
|
|||
<form const:href="saveProperties" name="propertiesform" id="propertiesform">
|
||||
<input type="hidden" const:name="calendarID" const:id="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>
|
||||
<legend><var:string label:value="Properties"/></legend>
|
||||
<div><span class="label"><var:string label:value="Name:"/></span
|
||||
|
@ -22,12 +32,6 @@
|
|||
class="textField"
|
||||
var:value="calendarName"
|
||||
/></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
|
||||
label:value="Color:"
|
||||
/></span><span class="content"
|
||||
|
@ -98,17 +102,39 @@
|
|||
/><var:string label:value="Reload on login"
|
||||
/></label></div></var:if>
|
||||
</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"
|
||||
><fieldset id="davLinks">
|
||||
<legend><var:string label:value="Links to this Calendar"/></legend>
|
||||
<a const:class="clickableLink" var:href="calDavURL"
|
||||
><var:string label:value="CalDAV url"/></a><br/>
|
||||
<a const:class="clickableLink" var:href="webDavICSURL"
|
||||
><fieldset id="authenticatedLinks">
|
||||
<legend><var:string label:value="Authenticated User Access"/></legend>
|
||||
<div><a const:class="clickableLink" var:href="calDavURL" var:title="calDavURL"
|
||||
><var:string label:value="CalDAV URL"/></a><br/>
|
||||
<a const:class="clickableLink" var:href="webDavICSURL" var:title="webDavICSURL"
|
||||
><var:string label:value="WebDAV ICS URL"/></a><br/>
|
||||
<a const:class="clickableLink" var:href="webDavXMLURL"
|
||||
><var:string label:value="WebDAV XML URL"/></a>
|
||||
</fieldset></var:if>
|
||||
<a const:class="clickableLink" var:href="webDavXMLURL" var:title="webDavXMLURL"
|
||||
><var:string label:value="WebDAV XML URL"/></a></div>
|
||||
</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">
|
||||
<a href="#" class="button actionButton" id="okButton"
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
DIV#propertiesView
|
||||
{ overflow: hidden;
|
||||
padding: 5px 5px 0 5px; }
|
||||
|
||||
DIV
|
||||
{ clear: both; }
|
||||
|
||||
|
@ -43,7 +39,10 @@ BUTTON#colorButton
|
|||
height: 18px; }
|
||||
|
||||
DIV#buttons
|
||||
{ padding: 10px;
|
||||
{ position: absolute;
|
||||
bottom: 5px;
|
||||
right: 5px;
|
||||
padding: 10px;
|
||||
padding-top: 5px;
|
||||
text-align: right; }
|
||||
|
||||
|
@ -53,9 +52,6 @@ INPUT#calendarSyncTag
|
|||
LABEL
|
||||
{ white-space: nowrap; }
|
||||
|
||||
#davLinks A
|
||||
{ margin-left: 60px; }
|
||||
|
||||
#webCalendarUrl SPAN.content
|
||||
{ white-space: nowrap;
|
||||
overflow: hidden; }
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
|
||||
function onLoadCalendarProperties() {
|
||||
var tabsContainer = $("propertiesTabs");
|
||||
var controller = new SOGoTabsController();
|
||||
controller.attachToTabsContainer(tabsContainer);
|
||||
|
||||
var colorButton = $("colorButton");
|
||||
var calendarColor = $("calendarColor");
|
||||
colorButton.setStyle({ "backgroundColor": calendarColor.value, display: "inline" });
|
||||
|
|
|
@ -94,11 +94,11 @@ TABLE
|
|||
BUTTON#colorButton
|
||||
{ margin-top: 2px; }
|
||||
|
||||
DIV#propertiesView FIELDSET
|
||||
DIV#propertiesTabs FIELDSET
|
||||
{ margin: 0.5em;
|
||||
padding: 5px; }
|
||||
|
||||
DIV#propertiesView LEGEND
|
||||
DIV#propertiesTabs LEGEND
|
||||
{ margin-bottom: 5px; }
|
||||
|
||||
/* UIxMailPartICalViewer */
|
||||
|
|
Loading…
Reference in New Issue