+2007-02-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/Scheduler/UIxCalMulticolumnDayView.[hm]: new daily view
+ module which shows each selected user's calendar in a different
+ column instead of mixing their events together.
+
+ * UI/Scheduler/UIxCalView.m ([UIxCalView -redirectForUIDsAction]):
+ replaced use of [NSString stringByTrimmingWhiteSpaces] with
+ [NSString stringByTrimmingSpaces].
+
+ * UI/MailPartViewers/UIxMailPartICalViewer.m: request the key
+ "cnWithoutQuotes" instead of "cnForDisplay", which no longer
+ exists.
+
+ * UI/Scheduler/UIxCalDayOverview.m,
+ UI/Scheduler/UIxCalDayChartview.m,
+ UI/Scheduler/UIxCalDayListview.m,
+ UI/Scheduler/UIxCalWeekOverview.m,
+ UI/Scheduler/UIxCalWeekChartview.m,
+ UI/Scheduler/UIxCalWeekListview.m,
+ UI/Scheduler/UIxCalInlineMonthOverview.m,
+ UI/Scheduler/UIxCalYearOverview.m: removed unused modules.
+
2007-02-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Contacts/SOGoContactFolders.m ([SOGoContactFolders
defaultRoles = {
"View" = ( "Owner", "Delegate", "Assistant" );
"FreeBusyLookup" = ( "Owner", "Delegate", "Assistant", "FreeBusy" );
+ "Add Documents, Images, and Files" = ( "Owner", "Delegate" );
};
};
-ACCEPTED = "Accepté"
-COMPLETED = "Terminé"
-DECLINED = "Refusé"
-DELEGATED = "Délégué"
-IN-PROCESS = "En cours de traitement"
-NEEDS-ACTION = "Prise de décision nécessaire"
-TENTATIVE = "Proposition"
+ACCEPTED = "Accepté";
+COMPLETED = "Terminé";
+DECLINED = "Refusé";
+DELEGATED = "Délégué";
+IN-PROCESS = "En cours de traitement";
+NEEDS-ACTION = "Prise de décision nécessaire";
+TENTATIVE = "Proposition";
organized_by_you = "vous êtes l'organisateur";
you_are_an_attendee = "vous êtes invité";
add_info_text = "iMIP 'ADD' requests are not yet supported by SOGo.";
NSString *cn;
if ((organizer = [[self authorativeEvent] organizer]) != nil) {
- cn = [organizer valueForKey:@"cnForDisplay"];
+ cn = [organizer valueForKey:@"cnWithoutQuotes"];
if ([cn isNotNull] && [cn length] > 0)
return cn;
UIxCalAptListView.m \
UIxCalTasksListView.m \
UIxCalDayView.m \
+ UIxCalMulticolumnDayView.m \
UIxCalWeekView.m \
UIxCalMonthView.m \
UIxCalMonthViewOld.m \
UIxAptTableView.m \
\
- UIxCalDayOverview.m \
- UIxCalDayChartview.m \
- UIxCalDayListview.m \
- UIxCalWeekOverview.m \
- UIxCalWeekChartview.m \
- UIxCalWeekListview.m \
- UIxCalWeekColumnsview.m \
- UIxCalMonthOverview.m \
- UIxCalYearOverview.m \
- UIxCalInlineMonthOverview.m \
UIxComponentEditor.m \
UIxFreeBusyUserSelector.m \
UIxFreeBusyUserSelectorTable.m \
UIxCalInlineAptView.m \
UIxCalScheduleOverview.m \
UIxCalParticipationStatusView.m \
+ UIxCalMonthOverview.m
SchedulerUI_RESOURCE_FILES += \
Version \
label="Day View";
onclick = "return onDayOverview();";
image = "day-view.png"; },
+ { link = "dayoverview";
+ label="Multicolumn Day View";
+ onclick = "return onMulticolumnDayOverview();";
+ image = "day-view-multicolumn.png"; },
{ link = "weekoverview";
label="Week View";
onclick = "return onWeekOverview();";
addObject: [NSString stringWithFormat: @"%d", currentHour]];
currentHour++;
}
+ [hoursToDisplay
+ addObject: [NSString stringWithFormat: @"%d", currentHour]];
}
return hoursToDisplay;
start = [currentTableDay hour: [self dayStartHour] minute: 0];
endHour = [self dayEndHour];
if (endHour < 24)
- end = [currentTableDay hour: [self dayEndHour] minute: 0];
+ end = [currentTableDay hour: [self dayEndHour] minute: 59];
else
end = [[currentTableDay tomorrow] hour: 0 minute: 0];
return currentAppointment;
}
-- (NSArray *) appointmentsClasses
+- (NSString *) appointmentsClasses
{
return [NSString stringWithFormat: @"appointments appointmentsFor%dDays",
numberOfDays];
unsigned index;
uidsString = [self queryParameterForKey: @"userUIDString"];
- uidsString = [uidsString stringByTrimmingWhiteSpaces];
+ uidsString = [uidsString stringByTrimmingSpaces];
[self setQueryParameter: nil forKey: @"userUIDString"];
prevMethod = [self queryParameterForKey: @"previousMethod"];
protectedBy = "View";
pageName = "UIxCalDayView";
};
+ multicolumndayview = {
+ protectedBy = "View";
+ pageName = "UIxCalMulticolumnDayView";
+ };
weekview = {
protectedBy = "View";
pageName = "UIxCalWeekView";
protectedBy = "View";
pageName = "UIxFreeBusyUserSelectorTable";
};
-
-/* TODO: delete the following components */
- dayoverview = {
- protectedBy = "View";
- pageName = "UIxCalDayOverview";
- };
- daychartview = {
- protectedBy = "View";
- pageName = "UIxCalDayChartview";
- };
- daylistview = {
- protectedBy = "View";
- pageName = "UIxCalDayListview";
- };
- weekoverview = {
- protectedBy = "View";
- pageName = "UIxCalWeekOverview";
- };
- weekchartview = {
- protectedBy = "View";
- pageName = "UIxCalWeekChartview";
- };
- weeklistview = {
- protectedBy = "View";
- pageName = "UIxCalWeekListview";
- };
- weekcolumnsview = {
- protectedBy = "View";
- pageName = "UIxCalWeekColumnsview";
- };
- monthoverview = {
- protectedBy = "View";
- pageName = "UIxCalMonthOverview";
- };
- yearoverview = {
- protectedBy = "View";
- pageName = "UIxCalYearOverview";
- };
};
};
left: 5em;
right: 0px; }
+DIV.multicolumnDayView DIV.lastDayUser
+{ border-right: 1px solid #397d94; }
+
DIV.daysView DIV.day
{ position: absolute;
- left: 0px;
border-left: 1px solid #397d94;
+ left: 0px;
top: 0px;
bottom: 0px; }
if (!day)
day = currentDay;
+ var user = UserLogin;
+ if (currentView == "multicolumndayview" && type == "event")
+ user = sender.parentNode.parentNode.getAttribute("user");
+
var hour = sender.getAttribute("hour");
- var urlstr = ApplicationBaseURL + "new" + type;
+ var urlstr = UserFolderURL + "../" + user + "/Calendar/new" + type;
var params = new Array();
if (day)
params.push("day=" + day);
if (!keepCurrentDay)
currentDay = day;
+ log (backtrace());
var month = day.substr(0, 6);
if (cachedDateSelectors[month]) {
// log ("restoring cached selector for month: " + month);
return _ensureView("dayview");
}
+function onMulticolumnDayOverview()
+{
+ return _ensureView("multicolumndayview");
+}
+
function onWeekOverview()
{
return _ensureView("weekview");
}
function onCalendarSelectDay(event) {
- var day = this.getAttribute("day");
+ var day;
+ if (currentView == "multicolumndayview")
+ day = this.parentNode.getAttribute("day");
+ else
+ day = this.getAttribute("day");
var needRefresh = (listFilter == 'view_selectedday'
&& day != currentDay);
logConsole.innerHTML += message + '<br />' + "\n";
}
+function backtrace() {
+ var func = backtrace.caller;
+ var str = "backtrace:<br/>";
+
+ while (func)
+ {
+ if (func.name)
+ {
+ str += " " + func.name;
+ if (this)
+ str += " (" + this + ")";
+ }
+ else
+ str += "[anonymous]\n";
+
+ str += "<br/>";
+ func = func.caller;
+ }
+ str += "--\n";
+
+ return str;
+}
+
function dropDownSubmenu(event) {
var node = event.target;
var submenu = node.getAttribute("submenu");