Changes for page Calendar Application

Last modified by Ecaterina Valica on 2014/01/15 13:50

From version 18.1
edited by Vlad Merticariu
on 2011/06/22 15:37
Change comment: There is no comment for this version
To version 10.1
edited by Silvia Rusu
on 2011/06/20 14:05
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.vladm
1 +XWiki.SilviaRusu
Content
... ... @@ -17,7 +17,7 @@
17 17  * Import/export: // tbd - ical feeds //
18 18  * Microformats support: // tbd//
19 19  * JS drag & drop on the calendar table for changing the dates/hours of the events ?: // an event can be dragged from one slot of the calendar table to another slot//
20 -* RSS notifications: // a document to generate RSS feed will be created//
20 +* RSS notifications: // tbd//
21 21  * Email notifications: // emails with information about the event are sent to the calendar creator and to the selected users (when?)//
22 22  * Privacy settings on events: // events can be public or private, public events are visible to everyone, private events are visible only to the calendar creator//
23 23  * Privacy settings on calendar
... ... @@ -30,22 +30,8 @@
30 30  * Daily view of the calendar, listing all the events in that day
31 31  * Have an API for accessing events
32 32  * Each event must be stored in its own document
33 -* Each calendar is stored in its own space (only 1 calendar/space)
33 +* Have different calendars for each space
34 34  
35 -= Alternatives =
36 -
37 -**Calendar aggregator**
38 -
39 -The WebHome of the application is an aggregated calendar which displays the events from all the calendars of a user.
40 -The user creates several calendars (e.g. Personal, Work) which can be visualized both individually and together, on the main page of the application.
41 -This is very similar to Google Calendar, following the same approach. The main advantage of this is the ease of interaction between users' calendars (e.g. sharing a calendar with another user means displaying the specific calendar among his own calendars, inside the WebHome).
42 -
43 -
44 -**Individual calendars with categories**
45 -
46 -The users creates calendars which are individual entities and each event is assigned a category when added.
47 -When the user is invited to other events he can choose to view those events in one or more of his calendars while when another user shares a calendar with him he can only view that calendar, on a separate page.
48 -
49 49  = Detailed Functionality =
50 50  
51 51  == Adding events ==
... ... @@ -58,12 +58,12 @@
58 58  Each calendar will be stored in a space. A space can only contain one calendar. Each event must be stored in its own document and should have:
59 59  
60 60  * **Name**
61 -* **Date**: User should be able to mark an event as **recurring**.
47 +* **Date**: User should be able to mark an event as **recurring**. Similarly to Google Calendar, event recurrence should be customizable
62 62  * **Location**: Link to Google Maps
63 63  * **Description**
64 -* **Category** : //? Do we need this once a user can have multiple calendars? //
50 +* **Category**
65 65  * **Color**: The event will have a default color and event creators may select a different color for the new event from a given list
66 -* **Notifications**: Email notifications may be sent to the event creator and the users he selects (10 minutes, 30 minutes, 1 hour, 1 day, 1 week)
52 +* **Notifications**: Email notifications may be sent to the event creator and the users he selects **n** minutes/hours/days/weeks before the event (n = a number the event creator fills in; minutes/hours/days/weeks are options in a drop-down). The event creator can also choose to be notified via RSS about event changes.
67 67  * **Privacy options**: Default, Private, Public
68 68  * The possibility to **add guests**. Guests can appear in the form of wiki users or email addresses. Suggestions should be available if the event creator starts typing in a user's name. Guests will be notified by email they have been invited to the event and they should be able to RSVP (confirm their presence) via email
69 69  * **Set rights for guests**. The event creator can grant users one, some or all of the following rights: modify the event, invite other guests to the event, see the guest list
... ... @@ -113,34 +113,20 @@
113 113  
114 114  * **Viewing events you are invited to in your calendar**: Calendar owners will have view right by default for their own calendar (space). View rights should also be granted for events he is invited to. This means having view rights on event pages that are located in other calendars (spaces). Other rights, such as edit and comment can also be granted, depending on the settings established by the the owner when creating the event.
115 115  
116 -**View event list:** A page (modal window) with the list of all the events in the calendar is displayed, using LiveTable, were the user can filter and edit/delete events (if he has the right to do it, additional view to administrate events) // ? Do we need this once the events can be viewed in calendar table? //
102 +**View event list:** A page (modal window) with the list of all the events in the calendar is displayed, using LiveTable, were the user can filter and edit/delete events (if he has the right to do it, additional view to administrate events)
117 117  
118 118  == Settings ==
119 119  
120 -=== General ===
106 +=== Privacy Settings ===
121 121  
122 -* Calendar **name**
123 -* **Owner**
124 -* **Description**
125 -* **Location**
126 -
127 -
128 -* Week starts on Sunday/Monday/Saturday ? //should this be done automatically depending on the user's location?//
129 -* Show events you have declined: Yes/No
130 -* Automatically add invitations to my calendar: Yes/No
131 -
132 -=== Privacy ===
133 -
134 134  **Privacy settings for calendar**
135 135  The calendar can be:
136 -
137 137  * Public
138 -* Visible for specific wiki users -> Share calendar
111 +* Visible for specific wiki users
139 139  * Private
140 140  
141 141  **Default privacy settings for events**
142 142  Events can be
143 -
144 144  * Public: visible to everyone specified in the calendar settings
145 145  * Private: visible only to the event creator
146 146  
... ... @@ -147,41 +147,24 @@
147 147  === Notifications ===
148 148  
149 149  A calendar owner may choose to receive notifications for:
150 -
151 151  |=Events he is invited to |=Events he owns
152 -|(((
153 -* New invitations
123 +|(((* New invitations
154 154  * Changed invitations
155 155  * Canceled invitations
156 -* Invitation replies
157 -)))|(((
158 -* RSVPs from guests (attending, canceling presence)
126 +* Invitation replies)))|(((* RSVPs from guests (attending, canceling presence)
159 159  * Attachments being added
160 -* Comments being added
161 -)))
128 +* Comments being added)))
162 162  
163 -In addition, **reminders** can be **sent by default to the calendar owner** via email: 10 minutes, 30 minutes, 1 hour, 1 day, 1 week
164 164  
165 -== Search ==
131 +=== Date and Language ===
166 166  
167 -The "View event list" livetable can be used to filter events by date, location, and even to do searches within the event descriptions.
168 -
169 169  == Suggestions ==
170 170  
171 171  * Ability to print calendar
172 172  * Keyboard shortcuts
173 173  * Tips or link to documentation
174 -* Notifications by SMS could be interesting
175 175  * Gadget integration
176 176  
177 -==Further work==
178 -
179 -* Select language?
180 -* Select from different time zones?
181 -* Select date format?
182 -* Select time format?
183 -* Similarly to Google Calendar, event recurrence should be customizable
184 -
185 185  = Technicalities =
186 186  
187 187  The event-calendar part of the application will be implemented in the following way:
... ... @@ -192,35 +192,24 @@
192 192  
193 193  Event class properties:
194 194  
195 -* name (Name: text): // the title of the event//
150 +* title (Title: text): // the title of the event//
151 +* description (Description: text): // a short description of the event//
152 +* location (Location: text): // the location where the event will take place//
196 196  * startDate (Start date: date(dd/MM/yyy)): // the date when the event starts//
197 197  * startTime (Start time: static list): // the hour when the event starts//
198 198  * endDate (End date: date(dd/MM/yyyy)): // the date when the event ends//
199 199  * endTime (End time: static list): //the hour when the event ends//
200 -* allDay (All day: bool): //checkbox which indicates that startTime is 00:00 of the startDate and endTime is 00:00 of the day after endDate
201 -* repeats (Repeats: static list (daily, weekly, monthly, yearly)): // how often the event repeats //
202 -* repeatsUntil (Until: date(dd/MM/yyyy)): // the date when the recursion of the event ends//
203 -* description (Description: text): // a short description of the event//
204 -* location (Location: text): // the location where the event will take place//
205 -* category (Category: database list): // the category of the event//
206 -* color (Color: static list): // the color of the event//
207 -* privacy(Privacy: static list): // set the event to be default, public (visible to everyone) or private (visible only to the user)//
208 -* emailNotifications (Email Notifications: static list): // indicates when the reminders for the event should be sent to the creator and to the guest list//
209 -* guestList (Guest List: user list): // the list of users invited to the event, waiting for confirmation//
210 -* confirmedGuests (Attending guests: user list, disabled): // the list of users who have confirmed their attendance to the event//
211 -* declinedGuests (Non-attending guests: user list, disabled): // the list of users who have declined their attendance to the event//
212 -* guestRights (Guests can: static lists): // Indicates if the guests can Modify event, Invite other guests, View guest list //
157 +* category(Category: database list): // the category of the event//
158 +* privacySettings(Privacy: static list): // set the event to be public (visible to everyone) or private (visible only to the user)//
159 +* notifications(notifications: bool): // indicates if the notifications are activated or not//
160 +* userNotifiationList(Users to receive notifications: ?): // the list of users to be notified about the event//
213 213  
214 214  Calendar class properties:
215 215  
216 -* name (Name: text): // the name of the calendar//
164 +* title (Title: text): // the title of the calendar//
217 217  * description(Description: text): // a short description of the calendar//
218 -* privacy(Privacy: static list): // set the calendar to be public(visible to everyone), visible to specific users or private(visisble only to the user)//
219 -* shareList(Share calendar: user list): // if privacy is set to visible for specific users, this list will contain the users who can view it//
166 +* privacySettings(Privacy: static list): // set the calendar to be public(visible to everyone) or private(visisble only to the user)//
220 220  * owner(Owner: user): // the user who owns the calendar//
221 -* weekStart(Week starts on: static list): // The day when the week starts (Sunday, Monday or Saturday) ? should this be done automatically depending on the user's location?//
222 -* showDeclinedEvents(Show Events you have declined: bool): // Indicates if events which have been declined should be added to the calendar//
223 -* addInvitations(Automatically add invitations to the calendar: bool): // Indicates if the events to which the user has been invited should be added to the calendar//
224 224  
225 225  Calendar class sheets:
226 226  
... ... @@ -227,8 +227,8 @@
227 227  * CalendarViewDaySheet: // contains the display of the calendar table in "day" view//
228 228  * CalendarViewWeekSheet: // contains the display of the calendar table in "week" view//
229 229  * CalendarViewMonthSheet: // contains the display of the calendar table in "month" view//
230 -* CalendarViewYearSheet: // contains the display of the calendar table in "year" view//
231 -* CreateCalendarEvent: // contains the form for adding new events//
174 +* CalendarViewYearSheet?
175 +* CalendarFormSheet: // contains the form for adding new events//
232 232  * CalendarEventListSheet: // contains the list of events for the specific calendar, with edit and delete links if the user has editing rights//
233 233  
234 234  Category class properties:
... ... @@ -235,5 +235,3 @@
235 235  
236 236  * title(Title: text): // the title of the category//
237 237  * description(Description: text): // a short description of the category//
238 -
239 -
actions.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -70.2 KB
Content
addMenu.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -18.1 KB
Content
eventFields.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -73.9 KB
Content
monthView.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -87.5 KB
Content
weekView.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -62.2 KB
Content
yearView.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Size
... ... @@ -1,1 +1,0 @@
1 -75.8 KB
Content
XWiki.XWikiComments[0]
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.evalica
Comment
... ... @@ -1,3 +1,0 @@
1 -I don't think we will need a livetable to list all the events since you can see/delete/edit all events in the year/month/week views. The calendar events are much powerful when they are in a timeline than seeing them in a list.
2 -
3 -Also I don't think is necessary the concept of categories when you can have multiple calendars. Right now in Google Calendar you can create multiple calendars and attribute each calendar a goal (have a personal one, a xwiki one, a birthday, etc). In this use case the concept of categories is replaced by multiple calendars.
Date
... ... @@ -1,1 +1,0 @@
1 -2011-06-22 11:59:17.0
XWiki.XWikiComments[1]
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.Enygma
Comment
... ... @@ -1,7 +1,0 @@
1 -I agree with this.
2 -
3 -We should have a 2 views:
4 -1. Individual calendar view, that should be available on each calendar's space WebHome
5 -2. Aggregated calendar view for all the calendars and events that are visible to the current user. This could be a new tab in the user's profile (harder for an application to extend right now) or, alternatively, in the Calendar application's space WebHome (easier and makes the Calendar application space useful).
6 -
7 -The event livetable might be useful for an 'advanced search' functionality, allowing to filter events nicely.
Date
... ... @@ -1,1 +1,0 @@
1 -2011-06-22 12:35:20.0
Reply To
... ... @@ -1,1 +1,0 @@
1 -0