Index: openacs-4/packages/calendar/www/doc/requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/doc/requirements.html,v diff -u -r1.1.1.1 -r1.1.1.1.26.1 --- openacs-4/packages/calendar/www/doc/requirements.html 23 Apr 2001 23:09:38 -0000 1.1.1.1 +++ openacs-4/packages/calendar/www/doc/requirements.html 22 Jun 2016 07:43:59 -0000 1.1.1.1.26.1 @@ -42,13 +42,13 @@ business, educational, club, and other community scenarios.

III. System/Application Overview

In our system, a -party-specific event is an event associated with a particular +party-specific event is an event associated with a particular party, typically of the sort scheduled by that party or of particular interest to members of that party. For example, a reading group may wish to associate an upcoming book signing event with their reading group party using the Calendar application. -

A user's calendar is the aggregate of the party-specific +

A user's calendar is the aggregate of the party-specific events which are associated with parties of which the user is a member and which have been specified by this user as desirable for calendar inclusion. Users will have the option to suppress the inclusion of all @@ -70,18 +70,18 @@

  • Navigation
  • -Event Management covers those aspects of the application which pertain +Event Management covers those aspects of the application which pertain to events, such as adding, editing, viewing, deleting events, and -setting up recurring events. An event is defined as an activity -associated +setting up recurring events. An event is defined as an activity +associated with one or more time intervals. For instance, "participating in an ACS bootcamp" is an activity, but "participating in the ACS bootcamp during the upcoming week" is an event. Therefore, the Event Management portion would also needs to deal with scheduling issues associated with -adding a temporal aspect to activities . -

    Calendar Views covers those aspects of the application which +adding a temporal aspect to activities . +

    Calendar Views covers those aspects of the application which pertain to the display of calendar events for a particular span of time. -

    Navigation covers those aspects of the application which pertain +

    Navigation covers those aspects of the application which pertain to ways in which the end-user can change the timespan currently being displayed.

    IV. Use-cases and User-scenarios

    @@ -96,7 +96,7 @@
  • Administrators
  • -The individual is primarily interested in having a personal Web +The individual is primarily interested in having a personal Web based calendar. The calendar needs to support the manipulation of basic calendar event components, among these: times, titles, and possibly descriptions. Example: Irwin Individual wants to be able to manage his schedule from any Web browser @@ -105,7 +105,7 @@ receive updates on party-specific events for these parties, retrieve clerical information regarding his upcoming commitments, and add local events which are specific to his travels. -

    Groups and Parties can have a collective calendar that stands +

    Groups and Parties can have a collective calendar that stands apart from the private individual calendar. This would be useful to display calendar events for the public, for whom there is no individual calendar. For example, ArsDigita can display a schedule of upcoming bootcamps, lectures @@ -116,7 +116,7 @@ need to support all the event managment and calendar views had by individual calendars, and in addition, the role of calendar administrator must be assigned to handle event managment. -

    Administrators for a group and party wide calendar are given +

    Administrators for a group and party wide calendar are given create, read, and write permissions on each individual item on the calendar. He or she also has the privilege to change the permissions for each of these items and also individual's ability to interact with these items. @@ -155,283 +155,283 @@

    VI.A Requirements: Private Calendar

    -10 Private Calendar -

    10.0 User Interface -

    10.0.10 The calendar page should indicate whether or not private, +10 Private Calendar +

    10.0 User Interface +

    10.0.10 The calendar page should indicate whether or not private, public or party-specific events are to be displayed. -

    10.0.20 The calendar should support navigation to view different +

    10.0.20 The calendar should support navigation to view different dates in a simple manner. -

    10.0.30 Links to different calendar functions should be clear +

    10.0.30 Links to different calendar functions should be clear and obvious. -

    10.0.40 Each calendar item should be displayed with its subject +

    10.0.40 Each calendar item should be displayed with its subject and time span as the basic information. -

    10.10 Views -

    10.10.0 Different views should be easily selectable. -

    10.10.0 Different views should also be indicated in a clear and +

    10.10 Views +

    10.10.0 Different views should be easily selectable. +

    10.10.0 Different views should also be indicated in a clear and noticeable location -

    10.10.10 List View -

    10.10.10.10 The calendar should support a view showing selected +

    10.10.10 List View +

    10.10.10.10 The calendar should support a view showing selected items in a tabular list format. -

    10.10.10.20 Columns should include date, time, and other relevant +

    10.10.10.20 Columns should include date, time, and other relevant information. -

    10.10.10.30 The columns should be sortable. -

    10.10.10.40 There should be at least two lists of items. One +

    10.10.10.30 The columns should be sortable. +

    10.10.10.40 There should be at least two lists of items. One list should consist of items whose dates occur within a user-specified number of days of the currently viewed date. One list should consist of items that have been added within a user-specified number of days of the current date. -

    10.10.20 Day View -

    10.10.20.10 The calendar should support a view showing all the +

    10.10.20 Day View +

    10.10.20.10 The calendar should support a view showing all the events for a particular day. -

    10.10.20.20 This view should show the events arranged chronologically +

    10.10.20.20 This view should show the events arranged chronologically with a time guide along one side. -

    10.10.20.30 The range of the time guide should be user-specifiable. -

    10.10.20.40 The user should have the option of compressing the +

    10.10.20.30 The range of the time guide should be user-specifiable. +

    10.10.20.40 The user should have the option of compressing the time guide so that only those time intervals upon which fall selected calendar events are shown. -

    10.10.20.50 Overlapping events should be displayed in an easy +

    10.10.20.50 Overlapping events should be displayed in an easy to understand fashion. -

    10.10.20.60 There should be a simple mechanism for adding events +

    10.10.20.60 There should be a simple mechanism for adding events which start at a particular hour. -

    10.10.20.70 The day view should support events that don't have +

    10.10.20.70 The day view should support events that don't have a specified start and end time, and the time guide should include a slot for these items. -

    10.10.30 Week View -

    10.10.30.10 The calendar should support a view showing all the +

    10.10.30 Week View +

    10.10.30.10 The calendar should support a view showing all the events for a particular week. -

    10.10.30.20 The events for a particular day should be grouped +

    10.10.30.20 The events for a particular day should be grouped together. -

    10.10.30.30 There should be a simple mechanism for adding an +

    10.10.30.30 There should be a simple mechanism for adding an event for a particular day. -

    10.10.30.40 The currently selected day should be highlighted +

    10.10.30.40 The currently selected day should be highlighted or otherwise clearly indicated to the user. -

    10.10.30.50 There should some way to move to the next and previous +

    10.10.30.50 There should some way to move to the next and previous week from this particular view. -

    10.10.40 Month View -

    10.10.40.10 The calendar should support a view showing all the +

    10.10.40 Month View +

    10.10.40.10 The calendar should support a view showing all the items for a particular month. -

    10.10.40.20 The events for a particular day should be grouped +

    10.10.40.20 The events for a particular day should be grouped together. -

    10.10.40.30 There should be a simple mechanism for adding an +

    10.10.40.30 There should be a simple mechanism for adding an event for a particular day. -

    10.10.40.40 The currently selected day should be indicated. -

    10.10.40.50 The application should display only some of the events +

    10.10.40.40 The currently selected day should be indicated. +

    10.10.40.50 The application should display only some of the events per day on the month calendar as oppose to every item. -

    10.10.40.60 There should some way to move to the next and previous +

    10.10.40.60 There should some way to move to the next and previous week from this particular view. -

    10.10.40.70 For each day, there should be a link to the day view +

    10.10.40.70 For each day, there should be a link to the day view for that day. -

    10.10.50 Year View -

    10.10.50.10 As a navigational mechanism, the calendar should +

    10.10.50 Year View +

    10.10.50.10 As a navigational mechanism, the calendar should support a view that shows all months and days in a particular year but not necessarily with any information on items for the days displayed. -

    10.10.50.20 For each month, there should be a link to the month +

    10.10.50.20 For each month, there should be a link to the month view of that month. -

    10.10.50.30 For each day, there should be a link to the day view +

    10.10.50.30 For each day, there should be a link to the day view of that day. -

    10.20 Navigation -

    10.20.10 Navigation Widget -

    10.20.10.10 The calendar should provide a widget for collecting +

    10.20 Navigation +

    10.20.10 Navigation Widget +

    10.20.10.10 The calendar should provide a widget for collecting together related navigation links. This should be similar to the widget provided by Yahoo Calendar and Excite Planner. -

    10.20.10.20 Navigation to a different date should maintain the +

    10.20.10.20 Navigation to a different date should maintain the same view. -

    10.20.10.30 In the list, day, and week views, the widget should +

    10.20.10.30 In the list, day, and week views, the widget should display a mini calendar of the days of the current month. Each day should be a link except for the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.40 In the month view, the widget should contain a list +

    10.20.10.40 In the month view, the widget should contain a list of the months of the year. Each month should be a link except for the month containing the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.50 In the year view, the widget should contain a short +

    10.20.10.50 In the year view, the widget should contain a short list of years before and after the current year. Each year should be a link except for the year containing the currently viewed day which should not be a link and should be highlighted in some manner. -

    10.20.10.60 The widget should contain some mechanism for entering +

    10.20.10.60 The widget should contain some mechanism for entering an arbitrary date using a clearly defined format, such as that employed by Yahoo Calendar. -

    10.20.10.70 The widget should clearly display today's date along +

    10.20.10.70 The widget should clearly display today's date along with some mechanism for navigating to that date. -

    10.20.10.80 In the list, day, and week views there should be +

    10.20.10.80 In the list, day, and week views there should be a mechanism for jumping forwards or backwards by a whole month at a time. -

    10.20.10.90 In the month and year views, there should be a mechanism +

    10.20.10.90 In the month and year views, there should be a mechanism for jumping forwards or backwards by a year at a time. -

    10.20.20 View Specific Navigation -

    10.20.20.10 Each view except for 'list' should have some easy +

    10.20.20 View Specific Navigation +

    10.20.20.10 Each view except for 'list' should have some easy mechanism for jumping forward or backward by the interval being viewed. -

    10.20.20.20 Selecting a day in week, month, or year view should +

    10.20.20.20 Selecting a day in week, month, or year view should take you to the day view for the that day. -

    10.20.20.30 Selecting a month in year view should take you to +

    10.20.20.30 Selecting a month in year view should take you to the month view for that month. -

    10.30 Adding Events -

    10.30.10 Adding an event should involve entering information +

    10.30 Adding Events +

    10.30.10 Adding an event should involve entering information for the event in a form and then submitting that form. Form should include title, start date and time, or an explicit indication that the event does not have a start time. Default values should already be entered with the correct time zone offset in place. Non-required fields should include end time or duration, type information, a description, to which party the event belongs, and an indicator as to whether or not this event recurs. -

    10.30.20 There should be a simple, clearly labeled link for adding +

    10.30.20 There should be a simple, clearly labeled link for adding an event. The date should default to the currently viewed date and the present time. -

    10.30.30 The time guide in the day view should have links from +

    10.30.30 The time guide in the day view should have links from each hour and from the slot for items with no start time. -

    10.30.40 Selecting the 'no start time' link should bring up the +

    10.30.40 Selecting the 'no start time' link should bring up the form with the date defaulting to the currently viewed date and the 'no start time' indicator set. -

    10.30.50 Selecting a link from a specific hour should bring up +

    10.30.50 Selecting a link from a specific hour should bring up the form with the date defaulting to the currently viewed date, the start time to the hour selected, and the end time to one hour later. -

    10.30.60 The week view should have a link for each day for adding +

    10.30.60 The week view should have a link for each day for adding an item. -

    10.30.70 The month view should have a link for each day for adding +

    10.30.70 The month view should have a link for each day for adding an item. -

    10.30.80 As in the Yahoo style calendar, there should be a 'quick +

    10.30.80 As in the Yahoo style calendar, there should be a 'quick add' box on the side of their calendar that allows user to add events quickly without having to click through on different days and different views. -

    10.40 Viewing Events -

    10.40.10 Selecting an event's title from any view should display +

    10.40 Viewing Events +

    10.40.10 Selecting an event's title from any view should display details for that event, including links to edit, add attachment, and delete. -

    10.50 Editing Events -

    10.50.10 While viewing an event, select 'Edit'. You should get +

    10.50 Editing Events +

    10.50.10 While viewing an event, select 'Edit'. You should get a form allowing you to edit the title, date, times, types, and description for the event. Non-recurring items should have a "Repeat?" field but not -an "Update?" field. [need to clarify what this means] -

    10.60 Adding Recurring Events -

    10.60.10 If the recurring events indicator is selected in the +an "Update?" field. [need to clarify what this means] +

    10.60 Adding Recurring Events +

    10.60.10 If the recurring events indicator is selected in the form for adding an item, then after submitting that form, a second form should be presented which summarizes the date and time of the item and provides fields to set how the item recurs. -

    10.60.20 The form should include fields to enter the type of +

    10.60.20 The form should include fields to enter the type of interval, the number of intervals between recurrences, and any specific information for the selected type of interval. -

    10.70 Editing Recurring Events -

    10.70.10 Selecting Edit when viewing a repeating item should +

    10.70 Editing Recurring Events +

    10.70.10 Selecting Edit when viewing a repeating item should add a field at the bottom of the form to specify whether any changes should be applied to only the current instance being edited or to all instances of this recurring item. -

    10.80 Adding Attachments to Events -

    10.80.10 When viewing an item, there should be a link to add +

    10.80 Adding Attachments to Events +

    10.80.10 When viewing an item, there should be a link to add an attachment to that item. Selecting that link should bring up a form to add attachments of various types. -

    10.80.20 The form should include a field for the title of the +

    10.80.20 The form should include a field for the title of the attachment. -

    10.80.30 One type of admissible attachment supported should be +

    10.80.30 One type of admissible attachment supported should be an uploaded file. This type should be handled in the standard ACS manner. -

    10.80.40 One type of admissible attachment should be a URL. -

    10.80.50 One type of admissible attachment should be a block +

    10.80.40 One type of admissible attachment should be a URL. +

    10.80.50 One type of admissible attachment should be a block of text. The form should provide a text box for entering the text and a way to indicate if the text is plaintext or HTML. -

    10.80.60 After adding an attachment of any sort, the calendar +

    10.80.60 After adding an attachment of any sort, the calendar should return to the view of the item which should have a list of attachments including the attachment just added. -

    10.80.70 For each attachment listed, there should be displayed +

    10.80.70 For each attachment listed, there should be displayed -- when permissions admit -- the title of the attachment, a link to the content of the attachment, a link to manage the attachment, and a link to edit it. -

    10.80.80 For a file attachment, the content link should return +

    10.80.80 For a file attachment, the content link should return the content of the file. -

    10.80.90 For a URL attachment, the content link should navigate +

    10.80.90 For a URL attachment, the content link should navigate to the URL. -

    10.80.100 For a text attachment, the content link should display +

    10.80.100 For a text attachment, the content link should display the entered text. -

    10.80.110 The manage link links to the management page of the -corresponding file in the file-storage system. [file-storage or -CR?] -

    10.80.120 The edit link allows direct editing of the content +

    10.80.110 The manage link links to the management page of the +corresponding file in the file-storage system. [file-storage or +CR?] +

    10.80.120 The edit link allows direct editing of the content of the attachment. -

    10.90 Inviting other groups to view Events -

    10.90.10 The application should have a link that lets the owner +

    10.90 Inviting other groups to view Events +

    10.90.10 The application should have a link that lets the owner of the event to invite other groups, individual or parties to add this event to their personal calendars. -

    10.100 Deleting events -

    10.100.10 When viewing an item, there should be a link to delete +

    10.100 Deleting events +

    10.100.10 When viewing an item, there should be a link to delete that item. -

    10.100.20 Selecting the delete link should bring up a confirmation +

    10.100.20 Selecting the delete link should bring up a confirmation dialog. -

    10.100.30 If the item is not recurring, then the choice button +

    10.100.30 If the item is not recurring, then the choice button will simply be labeled 'OK'. -

    10.100.40 If the item is recurring, then in addition to the choice +

    10.100.40 If the item is recurring, then in addition to the choice buttons, there should be a selection to indicate either the current instance only or all occurrences. -

    10.100.50 Selecting 'Cancel' should return to the item view. -

    10.100.60 Selecting 'OK' should delete the item in question. -

    10.100.70 If the item was recurring and 'all occurrences' had +

    10.100.50 Selecting 'Cancel' should return to the item view. +

    10.100.60 Selecting 'OK' should delete the item in question. +

    10.100.70 If the item was recurring and 'all occurrences' had been selected, then all other occurrences of the item should be deleted as well. -

    10.100.80 Selecting OK should return to the view where the item +

    10.100.80 Selecting OK should return to the view where the item was originally selected.

    VI.B Requirements: Party-Specific Events

    -20 Party-Specific Events -

    20.10 The calendar should display a list of calendars to which +20 Party-Specific Events +

    20.10 The calendar should display a list of calendars to which the user has access. At a minimum, this will include the user's personal calendar and a public events calendar. If the user belongs to parties that have party-specific events associated with them, there should be additional links to these party-specific events as well as the calendar of the party to which the user belongs. -

    20.30 On the personal calendar, there should also be a toggle +

    20.30 On the personal calendar, there should also be a toggle for each such party that controls whether or not events from that party appear on the personal calendar. -

    20.40 On a user's calendar, party-specific events should indicate +

    20.40 On a user's calendar, party-specific events should indicate to which party they are specific. -

    20.50 The link for adding an event should clearly indicate whether +

    20.50 The link for adding an event should clearly indicate whether a party-specific item or a personal item will be created.

    VI.C Requirements: Managing Party-Specific Events

    -30 Managing Party-Specific Events -

    30.10 If the user has write permission to any parties, when he +30 Managing Party-Specific Events +

    30.10 If the user has write permission to any parties, when he chooses to add an event, the choice of which party to associate with that event is given. -

    30.20 There should also be a page where permissions of read, +

    30.20 There should also be a page where permissions of read, write, approve, and delete can be given to different parties -

    30.30 There should be a link to the admin page for the group. -

    30.40 There should be a way to delete the calendar. This +

    30.30 There should be a link to the admin page for the group. +

    30.40 There should be a way to delete the calendar. This route should involve passing the user through a confirmation dialog.

    VI.D Requirements: Calendar Administration

    -40 Calendar Administration -

    40.10 Calendar User Privilege Administration -

    40.10.10 Cal Admin must have access to pages where permissions +40 Calendar Administration +

    40.10 Calendar User Privilege Administration +

    40.10.10 Cal Admin must have access to pages where permissions can be set for different parties -

    40.10.20 Cal Admin can also add new user party/groups/person +

    40.10.20 Cal Admin can also add new user party/groups/person to the entire calendar -

    40.10.30 Cal Admin can also add new user party/groups/person +

    40.10.30 Cal Admin can also add new user party/groups/person to indivdual calendar items -

    40.20 Calendar Items Administration -

    40.20.10 Provides the funcationality to delete, add, edit any +

    40.20 Calendar Items Administration +

    40.20.10 Provides the funcationality to delete, add, edit any item on the calendar -

    40.20.20 Provides the funcatinality to allow Calendar Administrator +

    40.20.20 Provides the funcatinality to allow Calendar Administrator to change the permissions on each calendar item. -

    40.20.20 Provides the funcatinality to allow Calendar Administrator +

    40.20.20 Provides the funcatinality to allow Calendar Administrator to change the default permissions of the entire calendar

    VI.E Requirements: API

    -50 API -

    50.10 Calendar Events Manipulation -

    50.10.10 Provide a function to add a new item to a calendar. +50 API +

    50.10 Calendar Events Manipulation +

    50.10.10 Provide a function to add a new item to a calendar. This function should support specifying all the values that can be specified in the 'add item' form. It should allow creating either a user or a party-specific item. Iit should support specifying a mapping between the new item and an arbitrary object in the database. -

    50.20 Calendar Views -

    50.20.10 Provide a function to generate the HTML for the list +

    50.20 Calendar Views +

    50.20.10 Provide a function to generate the HTML for the list view. -

    50.20.20 Provide a function to generate the HTML for the day +

    50.20.20 Provide a function to generate the HTML for the day view. -

    50.20.30 Provide a function to generate the HTML for the week +

    50.20.30 Provide a function to generate the HTML for the week view. -

    50.20.40 Provide a function to generate the HTML for the month +

    50.20.40 Provide a function to generate the HTML for the month view. -

    50.20.50 Provide a function to generate the HTML for the year +

    50.20.50 Provide a function to generate the HTML for the year view. -

    50.20.60 Provide a function to generate the HTML for the calendar +

    50.20.60 Provide a function to generate the HTML for the calendar navigation. -

    50.20.70 Provide a function to generate the HTML for the complete +

    50.20.70 Provide a function to generate the HTML for the complete calendar.

    VII. Revision History