Changes for page Calendar Application

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

From version 9.3
edited by Vlad Merticariu
on 2011/06/20 10:47
Change comment: There is no comment for this version
To version 5.1
edited by Oana Tabaranu
on 2011/06/16 12:04
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.vladm
1 +XWiki.OanaTabaranu
Content
... ... @@ -1,153 +1,63 @@
1 1  {{toc/}}
2 2  
3 -= Main objective =
3 +=Main objective=
4 4  
5 5  This application aims to allow end users to create calendars for which they can define and manage events.
6 6  
7 7  
8 -= Description =
8 +=Description=
9 9  
10 10  The functionality of the application is similar to Google Calendar.
11 11  The user defines event objects for a specific calendar and the events are visible in different views (day/week/month/year?).
12 12  
13 -= Functionality =
13 +=Functionality=
14 14  
15 -* Add events: // 1. Button which opens a modal window, allowing the user to insert details and save || 2. Complete form on the page. The users enters all the details and, after submission, he is redirected back to the calendar in view mode//
16 -* 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)//
17 -* Import/export: // tbd - ical feeds //
18 -* Microformats support: // tbd//
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: // tbd//
21 -* Email notifications: // emails with information about the event are sent to the calendar creator and to the selected users (when?)//
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//
15 +* Add events: // 1. Button which opens a modal window, allowing the user to insert details and save || 2. Complete form on the page. The users enters all the details and, after submission, he is redirected back to the calendar in view mode
16 +* 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)
17 +* Import/export: // tbd
18 +* Microformats support: // tbd
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: // tbd
21 +* Email notifications: // emails with information about the event are sent to the calendar creator and to the selected users (when?)
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
24 -* Display events on categories: // the viewer can select a category and only events from that category will be displayed in the calendar event//
25 -* Event details on hover: // when the user moves the mouse over an event in the calendar table details about the event (startin&ending time, location, description) are displayed//
26 -* Comment on events: // users have the ability to comment on events//
27 -* Yearly view of the calendar, where days with events in them are highlighted
28 -* Monthly view of the calendar, with links to the previous and next months
29 -* Weekly view of the calendar, with links to the previous and next weeks
30 -* Daily view of the calendar, listing all the events in that day
31 -* Have an API for accessing events
32 -* Each event must be stored in its own document
33 -* Have different calendars for each space
24 +* Display events on categories: // the viewer can select a category and only events from that category will be displayed in the calendar event
25 +* Event details on hover: // when the user moves the mouse over an event in the calendar table details about the event (startin&ending time, location, description) are displayed
34 34  
35 -= Detailed Functionality =
27 +=Technicalities=
36 36  
37 -== Adding events ==
38 -
39 -You may add an event by:
40 -
41 -1. Clicking a button which opens a modal window, allowing the user to insert details and save
42 -1. Filling in a form on the event page. The user enters all the details and, after submission, he is redirected back to the calendar in view mode
43 -
44 -Each event must be stored in its own document and should have:
45 -
46 -* **Name**
47 -* **Date**: User should be able to mark an event as **recurring**. Similarly to Google Calendar, event recurrence should be customizable
48 -* **Location**: Link to Google Maps
49 -* **Description**
50 -* **Category**
51 -* **Color**: The event will have a default color and event creators may select a different color for the new event from a given list
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.
53 -* **Privacy options**: Default, Private, Public
54 -* 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
55 -* **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
56 -* **Attachments**: Documents can be attached to an event. An icon will indicate in the daily and weekly view modes that the event has attachments
57 -* **Comments**: Users have the ability to comment on an event. An icon will indicate in daily and weekly view modes that the event has comments
58 -
59 -**More actions:**
60 -
61 -* **Change owner**
62 -* **RSVP for guests**: Users who are not event owners, but see an event to which they are invited in a calendar, should be able to click the "RSVP" link and confirm their presence
63 -* **Delete event**
64 -* **Duplicate event**: Copy an event inside the calendar
65 -* **Copy event to a different calendar**: Copy an event from the current calendar to a different calendar
66 -
67 -== Viewing events ==
68 -
69 -**View calendar:**
70 -
71 -* Tabbed day, week, month, yearly view
72 -* **Year view**:
73 -** There should be 12 cells representing the 12 different months
74 -** When users click on a month (e.g. //June 2011//) they should be directed to that specific month in the "Month" tab
75 -** When users click on a day (e.g. //1//) they should be directed to that specific day in the "Day" tab
76 -** Days that have events associated should be marked with bold
77 -** The current day should be highlighted with a distinct color or frame
78 -** Arrows will be available to go to the previous/next year
79 -* **Month view**:
80 -** Table view; each column represents a day of the week (Monday, Tuesday...); each cell represents a specific date (1, 2...)
81 -** When users click on a day (e.g. //1// in the cell header) they should be directed to that specific day in the "Day" tab
82 -** Events should be displayed chronologically inside each cell. The starting hour of the event should be displayed, the name of the event and an icon indicating if notifications have been set. Clicking or hovering (TBD) on the event will bring up a pop-up with more details and links to edit and delete the event
83 -** The current day should be highlighted with a distinct color (same as the one used for the "Year" view)
84 -** Arrows will be available to go to the previous/next month
85 -* **Week view**
86 -** Table view; each column represents a day of the week (Monday, Tuesday...); each row represents an hour of the day
87 -** When users click on a day (e.g. //Fri 6/17// in the table header) they should be directed to that specific day in the "Day" tab
88 -** Events should be displayed chronologically in each column and occupy the number of cells corresponding to the number of hours the event is scheduled to last. An alert icon should be displayed when a notification is set, an attachment icon when an attachment is present, a comment icon when comments have been added. Clicking or hovering (TBD) on the event will bring up a pop-up with more details and links to edit and delete the event
89 -** The current day should be highlighted with a distinct color (same as the one used for the other views)
90 -** Arrows will be available to go to the previous/next week
91 -* **Day view**
92 -** Table view; one column representing one day; each row represents an hour of the day
93 -** Events should be displayed chronologically and occupy the number of cells corresponding to the number of hours the event is scheduled to last. An alert icon should be displayed when a notification is set, an attachment icon when an attachment is present, a comment icon when comments have been added. Clicking or hovering (TBD) on the event will bring up a pop-up with more details and links to edit and delete the event
94 -** The current day should be highlighted with a distinct color (same as the one used for the other views)
95 -** Arrows will be available to go to the previous/next day
96 -
97 -* **Display events by category**: users can select a category and only events from that category will be displayed in the calendar
98 -* **Jump to a specific date**
99 -
100 -**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)
101 -
102 -== Settings ==
103 -
104 -
105 -== Suggestions ==
106 -
107 -* Ability to print calendar
108 -* Keyboard shortcuts
109 -* Tips or link to documentation
110 -* Gadget integration
111 -
112 -= Technicalities =
113 -
114 114  The event-calendar part of the application will be implemented in the following way:
115 -
116 116  * 2 classes will be used: EventClass and CalendarClass
117 117  * an event represents a document with an object of EventClass attached
118 118  * a calendar represents a document with an object of CalendarClass attached. When a calendar is added, a space is also created. This space will contain the calendar document and the event documents associated with the calendar.
119 119  
120 120  Event class properties:
35 +* title (Title: text): // the title of the event
36 +* description (Description: text): // a short description of the event
37 +* location (Location: text): // the location where the event will take place
38 +* startDate (Start date: date(dd/MM/yyy)): // the date when the event starts
39 +* startTime (Start time: time? (HH/mm)): // the hour when the event starts
40 +* endDate (End date: date(dd/MM/yyyy)): // the date when the event ends
41 +* endTime (End time: time? (HH/mm)): //the hour when the event ends
42 +* calendar(Calendar: text): // the calendar to which the event belongs (its space)
43 +* category(Category: text): // the category of the event
44 +* privacySettings(Privacy Settings: text): // set the event to be public (visible to everyone) or private (visible only to the user)
45 +* emailNotifications(Email Notifications: bool): // indicates if the notifications are activated or not
46 +* userNotifiationList(Users to receive notifications: ?): // the list of users to be notified about the event
121 121  
122 -* title (Title: text): // the title of the event//
123 -* description (Description: text): // a short description of the event//
124 -* location (Location: text): // the location where the event will take place//
125 -* startDate (Start date: date(dd/MM/yyy)): // the date when the event starts//
126 -* startTime (Start time: static list): // the hour when the event starts//
127 -* endDate (End date: date(dd/MM/yyyy)): // the date when the event ends//
128 -* endTime (End time: static list): //the hour when the event ends//
129 -* category(Category: database list): // the category of the event//
130 -* privacySettings(Privacy: static list): // set the event to be public (visible to everyone) or private (visible only to the user)//
131 -* notifications(notifications: bool): // indicates if the notifications are activated or not//
132 -* userNotifiationList(Users to receive notifications: ?): // the list of users to be notified about the event//
133 -
134 134  Calendar class properties:
49 +* title (Title: text): // the title of the calendar
50 +* description(Description: text): // a short description of the calendar
135 135  
136 -* title (Title: text): // the title of the calendar//
137 -* description(Description: text): // a short description of the calendar//
138 -* privacySettings(Privacy: static list): // set the calendar to be public(visible to everyone) or private(visisble only to the user)//
139 -* owner(Owner: user): // the user who owns the calendar//
140 -
141 141  Calendar class sheets:
142 -
143 -* CalendarViewDaySheet: // contains the display of the calendar table in "day" view//
144 -* CalendarViewWeekSheet: // contains the display of the calendar table in "week" view//
145 -* CalendarViewMonthSheet: // contains the display of the calendar table in "month" view//
53 +* CalendarViewDaySheet: // contains the display of the calendar table in "day" view
54 +* CalendarViewWeekSheet: // contains the display of the calendar table in "week" view
55 +* CalendarViewMonthSheet: // contains the display of the calendar table in "month" view
146 146  * CalendarViewYearSheet?
147 -* CalendarFormSheet: // contains the form for adding new events//
148 -* CalendarEventListSheet: // contains the list of events for the specific calendar, with edit and delete links if the user has editing rights//
57 +* CalendarFormSheet: // contains the form for adding new events
58 +* CalendarEventListSheet: // contains the list of events for the specific calendar, with edit and delete links if the user has editing rights
149 149  
150 150  Category class properties:
61 +* title(Title: text): // the title of the category
62 +* description(Description: text): // a short description of the category
151 151  
152 -* title(Title: text): // the title of the category//
153 -* description(Description: text): // a short description of the category//