Changes for page Calendar Application
Last modified by Ecaterina Valica on 2014/01/15 13:50
From version 9.1
edited by Silvia Rusu
on 2011/06/17 17:39
on 2011/06/17 17:39
Change comment:
There is no comment for this version
To version 15.1
edited by Vlad Merticariu
on 2011/06/22 14:22
on 2011/06/22 14:22
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. SilviaRusu1 +XWiki.vladm - 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: // tbd// 20 +* RSS notifications: // a document to generate RSS feed will be created// 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,7 +30,7 @@ 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 -* Havedifferentcalendarsforhspace33 +* Each calendar is stored in its own space (only 1 calendar/space) 34 34 35 35 = Detailed Functionality = 36 36 ... ... @@ -41,15 +41,15 @@ 41 41 1. Clicking a button which opens a modal window, allowing the user to insert details and save 42 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 43 44 -Each event must be stored in its own document and should have: 44 +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: 45 45 46 46 * **Name** 47 -* **Date**: User should be able to mark an event as **recurring**. Similarly to Google Calendar, event recurrence should be customizable47 +* **Date**: User should be able to mark an event as **recurring**. 48 48 * **Location**: Link to Google Maps 49 49 * **Description** 50 -* **Category** 50 +* **Category** : //? Do we need this once a user can have multiple calendars? // 51 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/weeksbeforethe event (n = a number the event creator fills in; minutes/hours/days/weeksareoptions in a drop-down). The event creatorcanalso choose to be notifiedviaRSSabouteventchanges.52 +* **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) 53 53 * **Privacy options**: Default, Private, Public 54 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 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 ... ... @@ -57,6 +57,7 @@ 57 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 58 59 59 **More actions:** 60 + 60 60 * **Change owner** 61 61 * **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 62 62 * **Delete event** ... ... @@ -63,13 +63,12 @@ 63 63 * **Duplicate event**: Copy an event inside the calendar 64 64 * **Copy event to a different calendar**: Copy an event from the current calendar to a different calendar 65 65 66 - 67 67 == Viewing events == 68 68 69 69 **View calendar:** 70 70 71 71 * Tabbed day, week, month, yearly view 72 -* **Year view**: 72 +* **Year view**: 73 73 ** There should be 12 cells representing the 12 different months 74 74 ** When users click on a month (e.g. //June 2011//) they should be directed to that specific month in the "Month" tab 75 75 ** When users click on a day (e.g. //1//) they should be directed to that specific day in the "Day" tab ... ... @@ -93,23 +93,81 @@ 93 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 94 ** The current day should be highlighted with a distinct color (same as the one used for the other views) 95 95 ** Arrows will be available to go to the previous/next day 96 + 96 96 * **Display events by category**: users can select a category and only events from that category will be displayed in the calendar 97 97 * **Jump to a specific date** 98 98 99 -**View event list:**Apage(modal window)withthe listofalltheeventsinthe calendarisdisplayed,usingLiveTable,were theusercanfilterandedit/deleteevents(ifhehas the right todoit,additionalviewtoadministrate events)100 +* **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. 100 100 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) // ? Do we need this once the events can be viewed in calendar table? // 101 101 102 102 == Settings == 103 103 106 +=== General === 104 104 108 +* Calendar **name** 109 +* **Owner** 110 +* **Description** 111 +* **Location** 112 + 113 + 114 +* Week starts on Sunday/Monday/Saturday ? //should this be done automatically depending on the user's location?// 115 +* Show events you have declined: Yes/No 116 +* Automatically add invitations to my calendar: Yes/No 117 + 118 +=== Privacy === 119 + 120 +**Privacy settings for calendar** 121 +The calendar can be: 122 + 123 +* Public 124 +* Visible for specific wiki users -> Share calendar 125 +* Private 126 + 127 +**Default privacy settings for events** 128 +Events can be 129 + 130 +* Public: visible to everyone specified in the calendar settings 131 +* Private: visible only to the event creator 132 + 133 +=== Notifications === 134 + 135 +A calendar owner may choose to receive notifications for: 136 + 137 +|=Events he is invited to |=Events he owns 138 +|((( 139 +* New invitations 140 +* Changed invitations 141 +* Canceled invitations 142 +* Invitation replies 143 +)))|((( 144 +* RSVPs from guests (attending, canceling presence) 145 +* Attachments being added 146 +* Comments being added 147 +))) 148 + 149 +In addition, **reminders** can be **sent by default to the calendar owner** via email: 10 minutes, 30 minutes, 1 hour, 1 day, 1 week 150 + 151 +== Search == 152 + 153 +The "View event list" livetable can be used to filter events by date, location, and even to do searches within the event descriptions. 154 + 105 105 == Suggestions == 106 106 107 107 * Ability to print calendar 108 108 * Keyboard shortcuts 109 109 * Tips or link to documentation 160 +* Notifications by SMS could be interesting 110 110 * Gadget integration 111 111 163 +==Further work== 112 112 165 +* Select language? 166 +* Select from different time zones? 167 +* Select date format? 168 +* Select time format? 169 +* Similarly to Google Calendar, event recurrence should be customizable 170 + 113 113 = Technicalities = 114 114 115 115 The event-calendar part of the application will be implemented in the following way: ... ... @@ -120,25 +120,35 @@ 120 120 121 121 Event class properties: 122 122 123 -* title (Title: text): // the title of the event// 124 -* description (Description: text): // a short description of the event// 125 -* location (Location: text): // the location where the event will take place// 181 +* name (Name: text): // the title of the event// 126 126 * startDate (Start date: date(dd/MM/yyy)): // the date when the event starts// 127 -* startTime (Start time: ti me?(HH/mm)): // the hour when the event starts//183 +* startTime (Start time: static list): // the hour when the event starts// 128 128 * endDate (End date: date(dd/MM/yyyy)): // the date when the event ends// 129 -* endTime (End time: time? (HH/mm)): //the hour when the event ends// 130 -* calendar(Calendar: text): // the calendar to which the event belongs (its space)// 131 -* category(Category: text): // the category of the event// 132 -* privacySettings(Privacy: text): // set the event to be public (visible to everyone) or private (visible only to the user)// 133 -* emailNotifications(Email Notifications: bool): // indicates if the notifications are activated or not// 134 -* userNotifiationList(Users to receive notifications: ?): // the list of users to be notified about the event// 185 +* endTime (End time: static list): //the hour when the event ends// 186 +* 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 187 +* repeats (Repeats: static list (daily, weekly, monthly, yearly)): // how often the event repeats // 188 +* repeatsUntil (Until: date(dd/MM/yyyy)): // the date when the recursion of the event ends// 189 +* description (Description: text): // a short description of the event// 190 +* location (Location: text): // the location where the event will take place// 191 +* category (Category: database list): // the category of the event// 192 +* color (Color: static list): // the color of the event// 193 +* privacy(Privacy: static list): // set the event to be default, public (visible to everyone) or private (visible only to the user)// 194 +* emailNotifications (Email Notifications: static list): // indicates when the reminders for the event should be sent to the creator and to the guest list// 195 +* guestList (Guest List: user list): // the list of users invited to the event, waiting for confirmation// 196 +* confirmedGuests (Attending guests: user list, disabled): // the list of users who have confirmed their attendance to the event// 197 +* declinedGuests (Non-attending guests: user list, disabled): // the list of users who have declined their attendance to the event// 198 +* guestRights (Guests can: static lists): // Indicates if the guests can Modify event, Invite other guests, View guest list // 135 135 136 136 Calendar class properties: 137 137 138 -* title (Title: text): // thetitle of the calendar//202 +* name (Name: text): // the name of the calendar// 139 139 * description(Description: text): // a short description of the calendar// 140 -* privacySettings(Privacy: static list): // set the calendar to be public(visible to everyone) or private(visisble only to the user)// 204 +* privacy(Privacy: static list): // set the calendar to be public(visible to everyone), visible to specific users or private(visisble only to the user)// 205 +* shareList(Share calendar: user list): // if privacy is set to visible for specific users, this list will contain the users who can view it// 141 141 * owner(Owner: user): // the user who owns the calendar// 207 +* 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?// 208 +* showDeclinedEvents(Show Events you have declined: bool): // Indicates if events which have been declined should be added to the calendar// 209 +* 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// 142 142 143 143 Calendar class sheets: 144 144 ... ... @@ -145,8 +145,8 @@ 145 145 * CalendarViewDaySheet: // contains the display of the calendar table in "day" view// 146 146 * CalendarViewWeekSheet: // contains the display of the calendar table in "week" view// 147 147 * CalendarViewMonthSheet: // contains the display of the calendar table in "month" view// 148 -* CalendarViewYearSheet ?149 -* Calendar FormSheet: // contains the form for adding new events//216 +* CalendarViewYearSheet: // contains the display of the calendar table in "year" view// 217 +* CreateCalendarEvent: // contains the form for adding new events// 150 150 * CalendarEventListSheet: // contains the list of events for the specific calendar, with edit and delete links if the user has editing rights// 151 151 152 152 Category class properties: ... ... @@ -153,3 +153,5 @@ 153 153 154 154 * title(Title: text): // the title of the category// 155 155 * description(Description: text): // a short description of the category// 224 + 225 +
- XWiki.XWikiComments[0]
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.evalica - Comment
-
... ... @@ -1,0 +1,3 @@ 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,0 +1,1 @@ 1 +2011-06-22 11:59:17.0