Index: openacs-4/packages/acs-events/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/design.adp,v diff -u -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-events/www/doc/design.adp 9 Jun 2016 13:03:12 -0000 1.2.2.3 +++ openacs-4/packages/acs-events/www/doc/design.adp 22 Jun 2016 08:19:32 -0000 1.2.2.4 @@ -21,13 +21,13 @@ <em>activity</em>, and an arbitrary number of <em>parties</em>. An activity can be associated with an arbitrary number of ACS <em>objects</em>.</p> -<p>The package doesn't provide for any interpretation of events, -leaving that up to the applications that use the service. In -particular, the package assumes that permissioning, and the related -concept of approval, will be handled by the application. Similarly, -notification is also the responsibility of the application (but -probably via another service package.) Likewise, the package -provides no UI support.</p> +<p>The package doesn't provide for any interpretation of +events, leaving that up to the applications that use the service. +In particular, the package assumes that permissioning, and the +related concept of approval, will be handled by the application. +Similarly, notification is also the responsibility of the +application (but probably via another service package.) Likewise, +the package provides no UI support.</p> <p>Possible application domains include include calendaring, room reservation, scheduling, project management, and event registration.</p> @@ -36,32 +36,32 @@ meets the requirements for each of these areas in the following ways:</p> <p> -<strong>Events:</strong> The service creates a new subtype of acs_object: -acs_event. It creates an auxiliary table for mapping events to -parties. It provides an API for manipulating and querying events -and their associated time interval sets, activities, recurrences, -and parties.</p> +<strong>Events:</strong> The service creates a new subtype of +acs_object: acs_event. It creates an auxiliary table for mapping +events to parties. It provides an API for manipulating and querying +events and their associated time interval sets, activities, +recurrences, and parties.</p> <p> -<strong>Time Intervals:</strong> The service creates tables for storing -time intervals and sets of time intervals. It provides an API for -manipulating and querying time intervals and time interval +<strong>Time Intervals:</strong> The service creates tables for +storing time intervals and sets of time intervals. It provides an +API for manipulating and querying time intervals and time interval sets.</p> <p> -<strong>Activities:</strong> The service creates a new subtype of -acs_object: acs_activity. It creates an auxiliary table for mapping -activities to objects. It provides an API for manipulating +<strong>Activities:</strong> The service creates a new subtype +of acs_object: acs_activity. It creates an auxiliary table for +mapping activities to objects. It provides an API for manipulating activities, their properties, and their associated objects.</p> <p> -<strong>Recurrences:</strong> The service creates a table for storing -information on how an event recurs, including how the event recurs -and when it stops recurring. It provides an API for manipulating -recurrence information and recurring events. This includes a -function to insert event recurrences in such a way as to reasonably -limit the amount of information stored in the DB for a particular -event. This is done by only partially populating the recurrences -for certain events. The service also provides a view which -simplifies querying to find partially populated recurring events -that need recurrences added to the DB.</p> +<strong>Recurrences:</strong> The service creates a table for +storing information on how an event recurs, including how the event +recurs and when it stops recurring. It provides an API for +manipulating recurrence information and recurring events. This +includes a function to insert event recurrences in such a way as to +reasonably limit the amount of information stored in the DB for a +particular event. This is done by only partially populating the +recurrences for certain events. The service also provides a view +which simplifies querying to find partially populated recurring +events that need recurrences added to the DB.</p> <h3>III. Historical Considerations</h3> <p>There are number of historical considerations surrounding the design of recurring events. Much of the current design can be @@ -90,8 +90,8 @@ advantage of the index on the start_date column to optimize the query. With the stored proc, it would be necessary to iterate over each day (up to 42 in the month view), calling the check repeat -proc for each base repeating item who's repeat_until date was still -relevant, and then effectively constructing the item to be +proc for each base repeating item who's repeat_until date was +still relevant, and then effectively constructing the item to be displayed.</p> <p>Another reason is that the first approach, to insert only a single row, seems to require a significantly more complex design. @@ -100,9 +100,9 @@ Now you need to maintain a separate table of exceptions and it becomes necessary to check through the exceptions table every time the check repeat proc is called. It the worst case, every -recurrence is an exception, so you're essentially back to 1 row per -recurrence, plus all the added complexity of using the check repeat -proc.</p> +recurrence is an exception, so you're essentially back to 1 row +per recurrence, plus all the added complexity of using the check +repeat proc.</p> <p>This is not an unreasonable possibility and is in fact how Sloan operates. Each class is represented as a recurring item and it is very common for each instance to have a different set of files @@ -120,20 +120,20 @@ systems seem to have arbitrary, implementation driven limits. Yahoo and Excite have arbitrary limits between about 1970 and 2030. Palm seems to have no lower limit, but an upper limit of 2031.</p> -<p>The 4.0 ACS Events service doesn't enforce a particular policy -to prevent problems, but it does provide mechanisms that a +<p>The 4.0 ACS Events service doesn't enforce a particular +policy to prevent problems, but it does provide mechanisms that a well-designed application can use. The keys are the <strong>event_recurrence.insert_events</strong> procedure and the <strong>partially_populated_events</strong> view.</p> <p> -<strong>insert_events</strong> takes either an event_id or a recurrence_id -and a cutoff date. It either uses the recurrence_id, or gets it -from the event_id, to retrieve the information needed to generate -the dates of the recurrences. When inserting a recurring event for -the first time, the application will need to call -<strong>insert_events</strong> with a reasonable populate_until date. For -calendar, for example, this could be sysdate + the lookahead -limit.</p> +<strong>insert_events</strong> takes either an event_id or a +recurrence_id and a cutoff date. It either uses the recurrence_id, +or gets it from the event_id, to retrieve the information needed to +generate the dates of the recurrences. When inserting a recurring +event for the first time, the application will need to call +<strong>insert_events</strong> with a reasonable populate_until +date. For calendar, for example, this could be sysdate + the +lookahead limit.</p> <p>It is the application's responsibility to determine if additional events need to be inserted into the DB to support the date being used in a query to view events. The application can do @@ -152,22 +152,23 @@ inclusive (covering both Yahoo Calendar and Excite Planner) though it didn't capture some of the more esoteric cases covered by Outlook or (particuarly) Lotus Notes. The Events service maintains -the original choices, but adds an additional choice, 'custom', -which, when combined with the custom_func column, allows an -application to generate an arbitrary recurrence function. The -function must take a date and a number of intervals as arguments -and return a new date greater than the given date. The number of -intervals is guaranteed to be a positive integer.</p> +the original choices, but adds an additional choice, +'custom', which, when combined with the custom_func column, +allows an application to generate an arbitrary recurrence function. +The function must take a date and a number of intervals as +arguments and return a new date greater than the given date. The +number of intervals is guaranteed to be a positive integer.</p> <p>For the days_of_week column, the representation chosen, a space-delimited list of integers, has a number of advantages. First, it is easy and reasonably efficient to generate the set of -dates corresponding to the recurrences. <strong>insert_events</strong> takes -each number in the list in turn and adds it to the date of the -beginning of the week. Second, the Tcl and Oracle representations -are equivalent and the translations to and from UI are -straightforward. In particular, the set of checkboxes corresponding -to days of the week are converted directly into a Tcl list which -can be stored directly into the DB.</p> +dates corresponding to the recurrences. +<strong>insert_events</strong> takes each number in the list in +turn and adds it to the date of the beginning of the week. Second, +the Tcl and Oracle representations are equivalent and the +translations to and from UI are straightforward. In particular, the +set of checkboxes corresponding to days of the week are converted +directly into a Tcl list which can be stored directly into the +DB.</p> <h3>IV. Competitive Analysis</h3> <p>Since this is a low level service package, there is no direct competition.</p> @@ -210,37 +211,38 @@ Tcl API, but if desired one could be added consisting primarily of wrappers around PL/SQL functions and procedures.</p> <h4>Events</h4> -<p>This is the main abstraction in the package. <tt>acs_event</tt> -is a subtype of <tt>acs_object</tt>. In addition to the -<tt>acs_events</tt> table, there is an <tt>acs_event_party_map</tt> -table which maps between parties and events. The <tt>acs_event</tt> -package defines <tt>new</tt>, <tt>delete</tt>, various procedures -to set attributes and <tt>recurs_p</tt> indicating whether or not a -particular event recurs.</p> +<p>This is the main abstraction in the package. +<kbd>acs_event</kbd> is a subtype of <kbd>acs_object</kbd>. In +addition to the <kbd>acs_events</kbd> table, there is an +<kbd>acs_event_party_map</kbd> table which maps between parties and +events. The <kbd>acs_event</kbd> package defines <kbd>new</kbd>, +<kbd>delete</kbd>, various procedures to set attributes and +<kbd>recurs_p</kbd> indicating whether or not a particular event +recurs.</p> <h4>Time Interval Sets</h4> <p>Because time interval sets are so simple, there is no need to -make them a subtype of <tt>acs_object</tt>. Interval sets are +make them a subtype of <kbd>acs_object</kbd>. Interval sets are represented with one table to represent time intervals, and a second table which groups intervals into sets, with corresponding -PL/SQL packages defining <tt>new</tt>, <tt>delete</tt>, and +PL/SQL packages defining <kbd>new</kbd>, <kbd>delete</kbd>, and additional manipulation functions.</p> <h4>Activities</h4> <p>This is the secondary abstraction in the package. -<tt>acs_activity</tt> is a subtype of <tt>acs_object</tt>. In -addition to the <tt>acs_activities</tt> table, there is an -<tt>acs_activity_object_map</tt> table which maps between objects -and activities. The <tt>acs_activity</tt> package defines -<tt>new</tt>, <tt>delete</tt>, and various procedures to set +<kbd>acs_activity</kbd> is a subtype of <kbd>acs_object</kbd>. In +addition to the <kbd>acs_activities</kbd> table, there is an +<kbd>acs_activity_object_map</kbd> table which maps between objects +and activities. The <kbd>acs_activity</kbd> package defines +<kbd>new</kbd>, <kbd>delete</kbd>, and various procedures to set attributes and mappings.</p> <h4>Recurrences</h4> <p>Since recurrences are always associated with events, there seemed to be no need to make them objects. The information that determines how an event recurs is stored in the -<tt>event_recurrences</tt> table.</p> -<p>The <tt>event_recurrence</tt> package defines <tt>new</tt>, -<tt>delete</tt>, and other procedures related to recurrences. The -key procedure is <tt>insert_events</tt>.</p> -<p>A view, <tt>partially_populated_events</tt>, is created which +<kbd>event_recurrences</kbd> table.</p> +<p>The <kbd>event_recurrence</kbd> package defines <kbd>new</kbd>, +<kbd>delete</kbd>, and other procedures related to recurrences. The +key procedure is <kbd>insert_events</kbd>.</p> +<p>A view, <kbd>partially_populated_events</kbd>, is created which hides some of the details of retrieving recurrences that need to populated further.</p> <!-- @@ -298,8 +300,8 @@ details here. You could also comment on non-functional improvements to the package, such as usability.</p> <p>Note that a careful treatment of the earlier "competitive -analysis" section can greatly facilitate the documenting of this -section.</p> +analysis" section can greatly facilitate the documenting of +this section.</p> <h3>XI. Authors</h3> <ul> <li>System owner: <a href="mailto:smeeks\@arsdigita.com">W. Scott Index: openacs-4/packages/acs-events/www/doc/design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/design.html,v diff -u -r1.1.1.1 -r1.1.1.1.28.1 --- openacs-4/packages/acs-events/www/doc/design.html 12 Jun 2001 03:56:20 -0000 1.1.1.1 +++ openacs-4/packages/acs-events/www/doc/design.html 22 Jun 2016 08:19:32 -0000 1.1.1.1.28.1 @@ -15,7 +15,7 @@ <ul> <li> Tcl script directory (link to the API browser page for the package) </li> <li> PL/SQL file (link to the API browser page for the package) </li> - <li> Data model: <a href="/doc/sql/display-sql?url=acs-events-create.sql&package_key=acs-events">acs-events-create.sql</a> </li> + <li> Data model: <a href="/doc/sql/display-sql?url=acs-events-create.sql&package_key=acs-events">acs-events-create.sql</a> </li> <p> <li> <a href="requirements.html">Requirements document</a> </li> <li> ER diagram </li> @@ -29,10 +29,10 @@ The ACS events service is primarily intended for use by writers of application packages and other service packages. The service allows developers to specify and manipulate relationships (possibly -recurring) between a <i>set of intervals in time</i>, an -<i>activity</i>, and an arbitrary number of <i>parties</i>. An +recurring) between a <em>set of intervals in time</em>, an +<em>activity</em>, and an arbitrary number of <em>parties</em>. An activity can be associated with an arbitrary number of ACS -<i>objects</i>. +<em>objects</em>. </p> <p> The package doesn't provide for any interpretation of events, leaving @@ -52,24 +52,24 @@ requirements for each of these areas in the following ways: </p> <p> -<b>Events:</b> The service creates a new subtype of acs_object: +<strong>Events:</strong> The service creates a new subtype of acs_object: acs_event. It creates an auxiliary table for mapping events to parties. It provides an API for manipulating and querying events and their associated time interval sets, activities, recurrences, and parties. </p> <p> -<b>Time Intervals:</b> The service creates tables for storing time +<strong>Time Intervals:</strong> The service creates tables for storing time intervals and sets of time intervals. It provides an API for manipulating and querying time intervals and time interval sets. </p> <p> -<b>Activities:</b> The service creates a new subtype of acs_object: +<strong>Activities:</strong> The service creates a new subtype of acs_object: acs_activity. It creates an auxiliary table for mapping activities to objects. It provides an API for manipulating activities, their properties, and their associated objects. </p> <p> -<b>Recurrences:</b> The service creates a table for storing +<strong>Recurrences:</strong> The service creates a table for storing information on how an event recurs, including how the event recurs and when it stops recurring. It provides an API for manipulating recurrence information and recurring events. This includes a function @@ -157,15 +157,15 @@ <p> The 4.0 ACS Events service doesn't enforce a particular policy to prevent problems, but it does provide mechanisms that a well-designed -application can use. The keys are the <b>event_recurrence.insert_events</b> -procedure and the <b>partially_populated_events</b> view. +application can use. The keys are the <strong>event_recurrence.insert_events</strong> +procedure and the <strong>partially_populated_events</strong> view. </p> <p> -<b>insert_events</b> takes either an event_id or a recurrence_id and a +<strong>insert_events</strong> takes either an event_id or a recurrence_id and a cutoff date. It either uses the recurrence_id, or gets it from the event_id, to retrieve the information needed to generate the dates of the recurrences. When inserting a recurring event for the first time, -the application will need to call <b>insert_events</b> with a +the application will need to call <strong>insert_events</strong> with a reasonable populate_until date. For calendar, for example, this could be sysdate + the lookahead limit. </p> @@ -200,7 +200,7 @@ For the days_of_week column, the representation chosen, a space-delimited list of integers, has a number of advantages. First, it is easy and reasonably efficient to generate the set of dates -corresponding to the recurrences. <b>insert_events</b> takes each +corresponding to the recurrences. <strong>insert_events</strong> takes each number in the list in turn and adds it to the date of the beginning of the week. Second, the Tcl and Oracle representations are equivalent and the translations to and from UI are straightforward. In @@ -275,33 +275,33 @@ <h4>Events</h4> <p> -This is the main abstraction in the package. <tt>acs_event</tt> is a -subtype of <tt>acs_object</tt>. In addition to the -<tt>acs_events</tt> table, there is an <tt>acs_event_party_map</tt> -table which maps between parties and events. The <tt>acs_event</tt> -package defines <tt>new</tt>, <tt>delete</tt>, various procedures to -set attributes and <tt>recurs_p</tt> indicating whether or not a +This is the main abstraction in the package. <kbd>acs_event</kbd> is a +subtype of <kbd>acs_object</kbd>. In addition to the +<kbd>acs_events</kbd> table, there is an <kbd>acs_event_party_map</kbd> +table which maps between parties and events. The <kbd>acs_event</kbd> +package defines <kbd>new</kbd>, <kbd>delete</kbd>, various procedures to +set attributes and <kbd>recurs_p</kbd> indicating whether or not a particular event recurs. </p> <h4>Time Interval Sets</h4> <p> Because time interval sets are so simple, there is no need to make -them a subtype of <tt>acs_object</tt>. Interval sets are represented +them a subtype of <kbd>acs_object</kbd>. Interval sets are represented with one table to represent time intervals, and a second table which groups intervals into sets, with corresponding PL/SQL packages -defining <tt>new</tt>, <tt>delete</tt>, and additional manipulation functions. +defining <kbd>new</kbd>, <kbd>delete</kbd>, and additional manipulation functions. </p> <h4>Activities</h4> <p> -This is the secondary abstraction in the package. <tt>acs_activity</tt> is a -subtype of <tt>acs_object</tt>. In addition to the -<tt>acs_activities</tt> table, there is an <tt>acs_activity_object_map</tt> -table which maps between objects and activities. The <tt>acs_activity</tt> -package defines <tt>new</tt>, <tt>delete</tt>, and various procedures to +This is the secondary abstraction in the package. <kbd>acs_activity</kbd> is a +subtype of <kbd>acs_object</kbd>. In addition to the +<kbd>acs_activities</kbd> table, there is an <kbd>acs_activity_object_map</kbd> +table which maps between objects and activities. The <kbd>acs_activity</kbd> +package defines <kbd>new</kbd>, <kbd>delete</kbd>, and various procedures to set attributes and mappings. </p> @@ -310,15 +310,15 @@ <p> Since recurrences are always associated with events, there seemed to be no need to make them objects. The information that determines how -an event recurs is stored in the <tt>event_recurrences</tt> table. +an event recurs is stored in the <kbd>event_recurrences</kbd> table. </p> <p> -The <tt>event_recurrence</tt> package defines <tt>new</tt>, -<tt>delete</tt>, and other procedures related to recurrences. The key -procedure is <tt>insert_events</tt>. +The <kbd>event_recurrence</kbd> package defines <kbd>new</kbd>, +<kbd>delete</kbd>, and other procedures related to recurrences. The key +procedure is <kbd>insert_events</kbd>. </p> <p> -A view, <tt>partially_populated_events</tt>, is created which hides +A view, <kbd>partially_populated_events</kbd>, is created which hides some of the details of retrieving recurrences that need to populated further. </p> @@ -412,10 +412,10 @@ <h3>XII. Revision History</h3> -<table cellpadding=2 cellspacing=2 width=90% bgcolor=#efefef> -<tr bgcolor=#e0e0e0> - <th width=10%>Document Revision #</th> - <th width=50%>Action Taken, Notes</th> +<table cellpadding="2" cellspacing="2" width="90%" bgcolor="#efefef"> +<tr bgcolor="#e0e0e0"> + <th width="10%">Document Revision #</th> + <th width="50%">Action Taken, Notes</th> <th>When?</th> <th>By Whom?</th> </tr> Index: openacs-4/packages/acs-events/www/doc/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/index.html,v diff -u -r1.3.22.1 -r1.3.22.2 --- openacs-4/packages/acs-events/www/doc/index.html 21 Aug 2015 10:28:44 -0000 1.3.22.1 +++ openacs-4/packages/acs-events/www/doc/index.html 22 Jun 2016 08:19:32 -0000 1.3.22.2 @@ -1,9 +1,9 @@ <html> <head><title>ACS Events Documentation</title></head> -<body bgcolor=#ffffff> +<body bgcolor="#ffffff"> <h1>ACS Events Documentation</h1> -by <a href=mailto:wsmeeks@arsdigita.com>wsmeeks@arsdigita.com</a> +by <a href="mailto:wsmeeks@arsdigita.com">wsmeeks@arsdigita.com</a> <hr> <h2>Engineering Docs</h2> <ul> Index: openacs-4/packages/acs-events/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/requirements.adp,v diff -u -r1.2.2.13 -r1.2.2.14 --- openacs-4/packages/acs-events/www/doc/requirements.adp 11 Jun 2016 08:44:02 -0000 1.2.2.13 +++ openacs-4/packages/acs-events/www/doc/requirements.adp 22 Jun 2016 08:19:32 -0000 1.2.2.14 @@ -29,36 +29,37 @@ of business advantages:</p> <ul> <li>It saves work and increases quality; applications that deal -with time don't have to "re-invent the wheel" but instead can use a -common, tested code base.</li><li>It improves consistency; the same API will be used in different +with time don't have to "re-invent the wheel" but +instead can use a common, tested code base.</li><li>It improves consistency; the same API will be used in different applications.</li><li>It simplifies integration; since a common data model is used to represent events, different applications can more easily share related information.</li> </ul> <p>For example, the events service could support a room reservation application that is integrated with an application which maintains -users's personal and group calendars. Suppose Stephanie uses the -room reservation application to reserve the Boston 1st floor +users's personal and group calendars. Suppose Stephanie uses +the room reservation application to reserve the Boston 1st floor conference room on 11/11 from 1pm to 2pm for Ern, Allen, and Alan. The events service will add a new event for this time slot, add a mapping to Ern, Allen, and Alan, and an activity for the meeting. This activity will map to the conference room. Now to get a -calendar item to appear on Ern, Allen, and Alan's calendars, the -reservation application can simply pass the event to the calendar -application which adds a mapping between the activity and a new -calendar item.</p> +calendar item to appear on Ern, Allen, and Alan's calendars, +the reservation application can simply pass the event to the +calendar application which adds a mapping between the activity and +a new calendar item.</p> <h3>III. ACS Events Package Overview</h3> <p>There are four main areas of functionality in the events package: events, time intervals, activities, and recurrences. The service depends upon the ACS object and parties systems.</p> <h4>III.A Events</h4> -<p>An <strong>event</strong> is an activity associated with a temporal -interval or several such intervals. Events may have additional -attributes as well. Examples of events include: "hitchhiking from -4pm to 5pm", "attending the InSync concert from 11pm to 1am at the -Enormodome", et cetera. Events are represented by designating the -associated activity together with a set of time intervals -indicating when that activity is to occur.</p> +<p>An <strong>event</strong> is an activity associated with a +temporal interval or several such intervals. Events may have +additional attributes as well. Examples of events include: +"hitchhiking from 4pm to 5pm", "attending the InSync +concert from 11pm to 1am at the Enormodome", et cetera. Events +are represented by designating the associated activity together +with a set of time intervals indicating when that activity is to +occur.</p> <p>An event can optionally be mapped to a set of parties representing groups or individuals that have some connection to the event.</p> @@ -73,34 +74,34 @@ activity or event.</p> <h4>III.B Time Interval Sets</h4> <p>A time interval set is a range of moments at which an event can -occur. A single time interval is of the form "from 3:00pm to 3:17pm -on 11/20/2000". A time interval set is of the form "from 3:00pm to -3:17pm and from 4:30pm to 4:45pm on 11/20/2000". A set of time -intervals has two advantages: (i) it allows for the representation -of temporally gappy events such as conferences, which end one day -and pick up again the next, and (ii) if implemented properly, it -allows a simplification of the above account of events, as now an -event can be identified with a pair of an activity together with a -time interval set.</p> +occur. A single time interval is of the form "from 3:00pm to +3:17pm on 11/20/2000". A time interval set is of the form +"from 3:00pm to 3:17pm and from 4:30pm to 4:45pm on +11/20/2000". A set of time intervals has two advantages: (i) +it allows for the representation of temporally gappy events such as +conferences, which end one day and pick up again the next, and (ii) +if implemented properly, it allows a simplification of the above +account of events, as now an event can be identified with a pair of +an activity together with a time interval set.</p> <p>The service provides an API for manipulating time interval sets.</p> <h4>III.C Activities</h4> -<p>An <strong>activity</strong> is a thing that a person or people do, -usually represented by a gerundic phrase, such as "biking", -"reserving a room", "travelling to Bhutan to achieve -enlightenment", et cetera. Activities are represented via a name -and a description. An activity can optionally be mapped to a set of -ACS objects.</p> +<p>An <strong>activity</strong> is a thing that a person or people +do, usually represented by a gerundic phrase, such as +"biking", "reserving a room", "travelling +to Bhutan to achieve enlightenment", et cetera. Activities are +represented via a name and a description. An activity can +optionally be mapped to a set of ACS objects.</p> The service provides an API for manipulating activities. <h4>III.D Recurring Events</h4> <p>Consider an event, say, an activity A performed on day D at time T. The ACS Events service allows applications to generate new events which are the same activity A performed on different days in the future, but at the same time of day T; such events are said to -be <strong>recurrences</strong> of the primary event. Recurrences can happen -on a daily, weekly, monthly, yearly or custom basis. The start and -end dates of recurrences can be uniformly offset.</p> +be <strong>recurrences</strong> of the primary event. Recurrences +can happen on a daily, weekly, monthly, yearly or custom basis. The +start and end dates of recurrences can be uniformly offset.</p> <h4>III.E Dependencies</h4> <p>The service depends on the ACS object model and on our parties system. Event is a subtype of acs_object. The ACS Events service @@ -121,143 +122,150 @@ <h3>VI.A Data Model Requirements</h3> <p><strong>10.10 Events</strong></p> <p> -<strong>10.10.10</strong> The data model represents activities associated -with sets of time intervals.</p> +<strong>10.10.10</strong> The data model represents activities +associated with sets of time intervals.</p> <p> -<strong>10.10.20</strong> Events can optionally be associated with -parties.</p> +<strong>10.10.20</strong> Events can optionally be associated +with parties.</p> <p> <strong>10.10.30></strong> Events can optionally recur.</p> <p><strong>10.20 Time Interval Sets</strong></p> <p> -<strong>10.20.10</strong> A time interval consists of a start time and an -end time.</p> +<strong>10.20.10</strong> A time interval consists of a start +time and an end time.</p> <p> -<strong>10.20.20</strong> A time interval set consists of a set of -associated time intervals.</p> +<strong>10.20.20</strong> A time interval set consists of a set +of associated time intervals.</p> <p> -<strong>10.20.30</strong> Individual time intervals can be open ended. -That is, the beginning time, ending time, or both may be null. The -exact meaning of a null time is application dependent. However, as -a suggestion, null end time could indicate events such as holidays -or birthdays that have no particular start time associated with -them. Null start time could indicate a due date. Both times null -could indicate some item that needs to be scheduled in the future -but does not yet have a set time.</p> +<strong>10.20.30</strong> Individual time intervals can be open +ended. That is, the beginning time, ending time, or both may be +null. The exact meaning of a null time is application dependent. +However, as a suggestion, null end time could indicate events such +as holidays or birthdays that have no particular start time +associated with them. Null start time could indicate a due date. +Both times null could indicate some item that needs to be scheduled +in the future but does not yet have a set time.</p> <p><strong>10.30 Activities</strong></p> <p> -<strong>10.30.10</strong> An activity has a name and a description.</p> +<strong>10.30.10</strong> An activity has a name and a +description.</p> <p> -<strong>10.30.20</strong> An activity can be associated with a set of ACS -objects.</p> +<strong>10.30.20</strong> An activity can be associated with a +set of ACS objects.</p> <p> -<strong>10.30.30</strong> An event object can be a valid target for an -activity. This could indicate time dependencies, e.g. for workflow -or project management.</p> +<strong>10.30.30</strong> An event object can be a valid target +for an activity. This could indicate time dependencies, e.g. for +workflow or project management.</p> <p><strong>10.50 Recurring Events</strong></p> <p> -<strong>10.50.10</strong> The data model provides a table which describes -how to generate recurrences from a base event.</p> +<strong>10.50.10</strong> The data model provides a table which +describes how to generate recurrences from a base event.</p> <strong>10.50.20</strong> - Recurring on a daily basis should be supported. + Recurring on a daily basis should be +supported. <p> -<strong>10.50.30</strong> Recurring on a weekly basis should be supported. -For weekly recurrences, it should be possible to specify exactly -which days of the week.</p> +<strong>10.50.30</strong> Recurring on a weekly basis should be +supported. For weekly recurrences, it should be possible to specify +exactly which days of the week.</p> <p> -<strong>10.50.40</strong> Recurring every month on a particular date -should be supported.</p> +<strong>10.50.40</strong> Recurring every month on a particular +date should be supported.</p> <p> -<strong>10.50.50</strong> Recurring every month on a particular day of a -particular week should be supported.</p> +<strong>10.50.50</strong> Recurring every month on a particular +day of a particular week should be supported.</p> <p> -<strong>10.50.60</strong> If a date in the 4th or 5th week of a month has -been selected, then an option should be presented allowing an item -to recur on a particular day of the last week of a month.</p> +<strong>10.50.60</strong> If a date in the 4th or 5th week of a +month has been selected, then an option should be presented +allowing an item to recur on a particular day of the last week of a +month.</p> <p> -<strong>10.50.70</strong> Recurring yearly on a particular date should be -supported.</p> +<strong>10.50.70</strong> Recurring yearly on a particular date +should be supported.</p> <p> -<strong>10.50.80</strong> The data model should allow an application to -provide a custom recurrence function.</p> +<strong>10.50.80</strong> The data model should allow an +application to provide a custom recurrence function.</p> <p> -<strong>10.50.90</strong> It should be possible to specify an end date for -recurrences.</p> +<strong>10.50.90</strong> It should be possible to specify an +end date for recurrences.</p> <p> -<strong>10.50.100</strong> It should be possible to specify no end date -for recurrences.</p> +<strong>10.50.100</strong> It should be possible to specify no +end date for recurrences.</p> <p> -<strong>10.50.110</strong> The service should enforce reasonable limits on -the amount of data used to represent recurring events. In other -words, it should not be possible to fill the DB with thousands of -rows representing a single recurring event, even if it recurs -indefinitely.</p> +<strong>10.50.110</strong> The service should enforce reasonable +limits on the amount of data used to represent recurring events. In +other words, it should not be possible to fill the DB with +thousands of rows representing a single recurring event, even if it +recurs indefinitely.</p> <p> -<strong>10.50.120</strong> The service should provide a view for querying -on those recurrences that aren't fully populated in the DB.</p> +<strong>10.50.120</strong> The service should provide a view for +querying on those recurrences that aren't fully populated in +the DB.</p> <h3>VI.B API Requirements</h3> <p><strong>20.10 Event API</strong></p> <p> -<strong>20.10.10</strong> The service supports adding an event.</p> +<strong>20.10.10</strong> The service supports adding an +event.</p> <p> -<strong>20.10.15</strong> The service supports setting the time interval -set of an event.</p> +<strong>20.10.15</strong> The service supports setting the time +interval set of an event.</p> <p> -<strong>20.10.20</strong> The service supports setting the activity of an -event.</p> +<strong>20.10.20</strong> The service supports setting the +activity of an event.</p> <p> -<strong>20.10.30</strong> The service supports adding or deleting a party -mapping to an event.</p> +<strong>20.10.30</strong> The service supports adding or +deleting a party mapping to an event.</p> <p> -<strong>20.10.40</strong> The service supports deleting a complete -event.</p> +<strong>20.10.40</strong> The service supports deleting a +complete event.</p> <p><strong>20.20 Time Interval Set API</strong></p> <p> -<strong>20.20.10</strong> The service supports adding a time interval -set.</p> +<strong>20.20.10</strong> The service supports adding a time +interval set.</p> <p> -<strong>20.20.20</strong> The service supports adding a time interval to a -set.</p> +<strong>20.20.20</strong> The service supports adding a time +interval to a set.</p> <p> -<strong>20.20.30</strong> The service supports updating the start or end -dates of a time interval.</p> +<strong>20.20.30</strong> The service supports updating the +start or end dates of a time interval.</p> <p> -<strong>20.20.40</strong> The service supports deleting a time interval -from a set.</p> +<strong>20.20.40</strong> The service supports deleting a time +interval from a set.</p> <p> -<strong>20.20.50</strong> The service supports counting the number of time -intervals in a set.</p> +<strong>20.20.50</strong> The service supports counting the +number of time intervals in a set.</p> <p> -<strong>20.20.60</strong> The service supports determining if a given -interval overlaps a particular time interval set.</p> +<strong>20.20.60</strong> The service supports determining if a +given interval overlaps a particular time interval set.</p> <p><strong>20.30 Activity API</strong></p> <p> -<strong>20.30.10</strong> The service supports creating an activity.</p> +<strong>20.30.10</strong> The service supports creating an +activity.</p> <p> -<strong>20.30.20</strong> The service supports deleting an activity.</p> -<p> -<strong>20.30.30</strong> The service supports updating the name of an +<strong>20.30.20</strong> The service supports deleting an activity.</p> <p> -<strong>20.30.40</strong> The service supports updating the description of -an activity.</p> +<strong>20.30.30</strong> The service supports updating the name +of an activity.</p> <p> -<strong>20.30.50</strong> The service supports adding or deleting an -object mapping to an event.</p> +<strong>20.30.40</strong> The service supports updating the +description of an activity.</p> +<p> +<strong>20.30.50</strong> The service supports adding or +deleting an object mapping to an event.</p> <p><strong>20.50 Recurrence API</strong></p> <p> -<strong>20.50.10</strong> The service supports adding recurrences of an -event.</p> +<strong>20.50.10</strong> The service supports adding +recurrences of an event.</p> <p> -<strong>20.50.20</strong> The service supports deleting recurrences of an -event.</p> +<strong>20.50.20</strong> The service supports deleting +recurrences of an event.</p> <p> -<strong>20.50.30</strong> The service supports uniformly offsetting the -start or end times of time intervals of recurrences of an -event.</p> +<strong>20.50.30</strong> The service supports uniformly +offsetting the start or end times of time intervals of recurrences +of an event.</p> <p> -<strong>20.50.40</strong> The service supports determining if an event -recurs.</p> +<strong>20.50.40</strong> The service supports determining if an +event recurs.</p> <h3>VII. Design and Implementation Notes</h3> <h4>VII.A 3.4 Calendar Package</h4> <p>The <a href="http://www.arsdigita.com/doc/calendar/">3.4 @@ -325,14 +333,14 @@ </tr><tr> <td>0.2</td><td>Revision, remove timezones, add multiple timespans</td><td>11/14/2000</td><td>W. Scott Meeks</td> </tr><tr> -<td>0.3</td><td>Rename "scheduling" to "event handling". Add activities. -Renaming and updating requirements.</td><td>11/15/2000</td><td>W. Scott Meeks</td> +<td>0.3</td><td>Rename "scheduling" to "event handling". +Add activities. Renaming and updating requirements.</td><td>11/15/2000</td><td>W. Scott Meeks</td> </tr><tr> <td>0.4</td><td>Remove approval in favor of requiring applications to use acs-workflow.</td><td>11/17/2000</td><td>W. Scott Meeks</td> </tr><tr> -<td>0.5</td><td>Name of package changes from "Event Handling" to "ACS -Events".</td><td>11/17/2000</td><td>W. Scott Meeks</td> +<td>0.5</td><td>Name of package changes from "Event Handling" to +"ACS Events".</td><td>11/17/2000</td><td>W. Scott Meeks</td> </tr><tr> <td>0.6</td><td>Clean up, clarification, rewording</td><td>12/08/2000</td><td>Joshua Finkler</td> </tr> Index: openacs-4/packages/acs-events/www/doc/requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/requirements.html,v diff -u -r1.1.1.1 -r1.1.1.1.28.1 --- openacs-4/packages/acs-events/www/doc/requirements.html 12 Jun 2001 03:56:20 -0000 1.1.1.1 +++ openacs-4/packages/acs-events/www/doc/requirements.html 22 Jun 2016 08:19:32 -0000 1.1.1.1.28.1 @@ -77,7 +77,7 @@ <h4>III.A Events</h4> <p> -An <b>event</b> is an activity associated with a temporal interval or +An <strong>event</strong> is an activity associated with a temporal interval or several such intervals. Events may have additional attributes as well. Examples of events include: "hitchhiking from 4pm to 5pm", "attending the InSync concert from 11pm to 1am at the Enormodome", et @@ -123,7 +123,7 @@ <h4>III.C Activities</h4> <p> -An <b>activity</b> is a thing that a person or people do, usually represented +An <strong>activity</strong> is a thing that a person or people do, usually represented by a gerundic phrase, such as "biking", "reserving a room", "travelling to Bhutan to achieve enlightenment", et cetera. Activities are represented via a name and a description. An activity can @@ -135,7 +135,7 @@ <h4>III.D Recurring Events</h4> <p> -Consider an event, say, an activity A performed on day D at time T. The ACS Events service allows applications to generate new events which are the same activity A performed on different days in the future, but at the same time of day T; such events are said to be <b>recurrences</b> of the primary event. Recurrences can happen on a daily, +Consider an event, say, an activity A performed on day D at time T. The ACS Events service allows applications to generate new events which are the same activity A performed on different days in the future, but at the same time of day T; such events are said to be <strong>recurrences</strong> of the primary event. Recurrences can happen on a daily, weekly, monthly, yearly or custom basis. The start and end dates of recurrences can be uniformly offset. <p> @@ -151,10 +151,10 @@ <h3>IV. Use-cases and User-scenarios</h3> <p> -<i>Determine the types or classes of users who would use the +<em>Determine the types or classes of users who would use the system, and what their experience would be like at a high-level. Sketch what their experience would be like and what actions they would -take, and how the system would support them.</i> +take, and how the system would support them.</em> </p> @@ -179,30 +179,30 @@ <h3>VI.A Data Model Requirements</h3> <p> -<b>10.10 Events</b> +<strong>10.10 Events</strong> </p> <p> -<b>10.10.10</b> The data model represents activities associated with sets +<strong>10.10.10</strong> The data model represents activities associated with sets of time intervals. </p> <p> -<b>10.10.20</b> Events can optionally be associated with parties. +<strong>10.10.20</strong> Events can optionally be associated with parties. </p> <p> -<b>10.10.30></b> Events can optionally recur. +<strong>10.10.30></strong> Events can optionally recur. </p> <p> -<b>10.20 Time Interval Sets</b> +<strong>10.20 Time Interval Sets</strong> </p> <p> -<b>10.20.10</b> A time interval consists of a start time and an end time. +<strong>10.20.10</strong> A time interval consists of a start time and an end time. </p> <p> -<b>10.20.20</b> A time interval set consists of a set of associated time +<strong>10.20.20</strong> A time interval set consists of a set of associated time intervals. </p> <p> -<b>10.20.30</b> Individual time intervals can be open ended. That is, the +<strong>10.20.30</strong> Individual time intervals can be open ended. That is, the beginning time, ending time, or both may be null. The exact meaning of a null time is application dependent. However, as a suggestion, null end time could indicate events such as holidays or birthdays that @@ -212,150 +212,150 @@ time. </p> <p> -<b>10.30 Activities</b> +<strong>10.30 Activities</strong> </p> <p> -<b>10.30.10</b> An activity has a name and a description. +<strong>10.30.10</strong> An activity has a name and a description. </p> <p> -<b>10.30.20</b> An activity can be associated with a set of ACS objects. +<strong>10.30.20</strong> An activity can be associated with a set of ACS objects. </p> <p> -<b>10.30.30</b> An event object can be a valid target for an activity. +<strong>10.30.30</strong> An event object can be a valid target for an activity. This could indicate time dependencies, e.g. for workflow or project management. </p> <p> -<b>10.50 Recurring Events</b> +<strong>10.50 Recurring Events</strong> </p> <p> -<b>10.50.10</b> The data model provides a table which describes how to generate +<strong>10.50.10</strong> The data model provides a table which describes how to generate recurrences from a base event. </p> -<b>10.50.20</b> Recurring on a daily basis should be supported.<p> +<strong>10.50.20</strong> Recurring on a daily basis should be supported.<p> -<b>10.50.30</b> Recurring on a weekly basis should be supported. For +<strong>10.50.30</strong> Recurring on a weekly basis should be supported. For weekly recurrences, it should be possible to specify exactly which days of the week.<p> -<b>10.50.40</b> Recurring every month on a particular date should be +<strong>10.50.40</strong> Recurring every month on a particular date should be supported.<p> -<b>10.50.50</b> Recurring every month on a particular day of a +<strong>10.50.50</strong> Recurring every month on a particular day of a particular week should be supported.<p> -<b>10.50.60</b> If a date in the 4th or 5th week of a month has been +<strong>10.50.60</strong> If a date in the 4th or 5th week of a month has been selected, then an option should be presented allowing an item to recur on a particular day of the last week of a month.<p> -<b>10.50.70</b> Recurring yearly on a particular date should be supported.<p> +<strong>10.50.70</strong> Recurring yearly on a particular date should be supported.<p> <p> -<b>10.50.80</b> The data model should allow an application to provide a +<strong>10.50.80</strong> The data model should allow an application to provide a custom recurrence function. <p> -<b>10.50.90</b> It should be possible to specify an end date for +<strong>10.50.90</strong> It should be possible to specify an end date for recurrences. </p> <p> -<b>10.50.100</b> It should be possible to specify no end date for recurrences. +<strong>10.50.100</strong> It should be possible to specify no end date for recurrences. </p> <p> -<b>10.50.110</b> The service should enforce reasonable limits on the +<strong>10.50.110</strong> The service should enforce reasonable limits on the amount of data used to represent recurring events. In other words, it should not be possible to fill the DB with thousands of rows representing a single recurring event, even if it recurs indefinitely. </p> <p> -<b>10.50.120</b> The service should provide a view for querying on +<strong>10.50.120</strong> The service should provide a view for querying on those recurrences that aren't fully populated in the DB. </p> <h3>VI.B API Requirements</h3> <p> -<b>20.10 Event API</b> +<strong>20.10 Event API</strong> </p> <p> -<b>20.10.10</b> The service supports adding an event. +<strong>20.10.10</strong> The service supports adding an event. </p> <p> -<b>20.10.15</b> The service supports setting the time interval set of +<strong>20.10.15</strong> The service supports setting the time interval set of an event. </p> <p> -<b>20.10.20</b> The service supports setting the activity of an event. +<strong>20.10.20</strong> The service supports setting the activity of an event. </p> <p> -<b>20.10.30</b> The service supports adding or deleting a party +<strong>20.10.30</strong> The service supports adding or deleting a party mapping to an event. </p> <p> -<b>20.10.40</b> The service supports deleting a complete event. +<strong>20.10.40</strong> The service supports deleting a complete event. </p> <p> -<b>20.20 Time Interval Set API</b> +<strong>20.20 Time Interval Set API</strong> </p> <p> -<b>20.20.10</b> The service supports adding a time interval set. +<strong>20.20.10</strong> The service supports adding a time interval set. </p> <p> -<b>20.20.20</b> The service supports adding a time interval to a set. +<strong>20.20.20</strong> The service supports adding a time interval to a set. </p> <p> -<b>20.20.30</b> The service supports updating the start or end dates +<strong>20.20.30</strong> The service supports updating the start or end dates of a time interval. </p> <p> -<b>20.20.40</b> The service supports deleting a time interval from a +<strong>20.20.40</strong> The service supports deleting a time interval from a set. </p> <p> -<b>20.20.50</b> The service supports counting the number of time +<strong>20.20.50</strong> The service supports counting the number of time intervals in a set. </p> <p> -<b>20.20.60</b> The service supports determining if a given interval +<strong>20.20.60</strong> The service supports determining if a given interval overlaps a particular time interval set. </p> <p> -<b>20.30 Activity API</b> +<strong>20.30 Activity API</strong> </p> <p> -<b>20.30.10</b> The service supports creating an activity. +<strong>20.30.10</strong> The service supports creating an activity. </p> <p> -<b>20.30.20</b> The service supports deleting an activity. +<strong>20.30.20</strong> The service supports deleting an activity. </p> <p> -<b>20.30.30</b> The service supports updating the name of an activity. +<strong>20.30.30</strong> The service supports updating the name of an activity. </p> <p> -<b>20.30.40</b> The service supports updating the description of an activity. +<strong>20.30.40</strong> The service supports updating the description of an activity. </p> <p> -<b>20.30.50</b> The service supports adding or deleting an object +<strong>20.30.50</strong> The service supports adding or deleting an object mapping to an event. </p> <p> -<b>20.50 Recurrence API</b> +<strong>20.50 Recurrence API</strong> </p> <p> -<b>20.50.10</b> The service supports adding recurrences of an event. +<strong>20.50.10</strong> The service supports adding recurrences of an event. </p> <p> -<b>20.50.20</b> The service supports deleting recurrences of an event. +<strong>20.50.20</strong> The service supports deleting recurrences of an event. </p> <p> -<b>20.50.30</b> The service supports uniformly offsetting the start or +<strong>20.50.30</strong> The service supports uniformly offsetting the start or end times of time intervals of recurrences of an event. </p> <p> -<b>20.50.40</b> The service supports determining if an event recurs. +<strong>20.50.40</strong> The service supports determining if an event recurs. </p> <h3>VII. Design and Implementation Notes</h3> @@ -441,10 +441,10 @@ <h3>VIII. Revision History</h3> -<table cellpadding=2 cellspacing=2 width=90% bgcolor=#efefef> -<tr bgcolor=#e0e0e0> - <th width=10%>Document Revision #</th> - <th width=50%>Action Taken, Notes</th> +<table cellpadding="2" cellspacing="2" width="90%" bgcolor="#efefef"> +<tr bgcolor="#e0e0e0"> + <th width="10%">Document Revision #</th> + <th width="50%">Action Taken, Notes</th> <th>When?</th> <th>By Whom?</th> </tr> Index: openacs-4/packages/dotlrn/lib/toolbar.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/lib/toolbar.adp,v diff -u -r1.9 -r1.9.6.1 --- openacs-4/packages/dotlrn/lib/toolbar.adp 9 Nov 2008 23:29:23 -0000 1.9 +++ openacs-4/packages/dotlrn/lib/toolbar.adp 22 Jun 2016 08:25:00 -0000 1.9.6.1 @@ -50,11 +50,11 @@ <tr> <td colspan="4" class="general-info"> <ul> - <li><i>my user_id:</i> <span> @user_id@ </span> </li> - <li><i>context_id:</i> <span> @package_id@ </span></li> - <li><i>community_id:</i> <span> @community_id@ </span> </li> - <li><i>portal_id:</i> <span> @portal_id@ </span> </li> - <li><i>package_id:</i> <span>@package_id@</span> </li> + <li><em>my user_id:</em> <span> @user_id@ </span> </li> + <li><em>context_id:</em> <span> @package_id@ </span></li> + <li><em>community_id:</em> <span> @community_id@ </span> </li> + <li><em>portal_id:</em> <span> @portal_id@ </span> </li> + <li><em>package_id:</em> <span>@package_id@</span> </li> </ul> </td> </tr> Index: openacs-4/packages/dotlrn/www/clone.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/clone.adp,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/packages/dotlrn/www/clone.adp 3 Jul 2015 10:43:55 -0000 1.7 +++ openacs-4/packages/dotlrn/www/clone.adp 22 Jun 2016 08:25:00 -0000 1.7.2.1 @@ -21,7 +21,7 @@ <master> <property name="doc(title)">@title;literal@</property> -<i><strong>#dotlrn.Note#</strong> #dotlrn.lt_this_may_take_some_time#</i> +<em><strong>#dotlrn.Note#</strong> #dotlrn.lt_this_may_take_some_time#</em> <formtemplate id="clone_form"></formtemplate> Index: openacs-4/packages/dotlrn/www/deregister-confirm.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/deregister-confirm.adp,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/dotlrn/www/deregister-confirm.adp 3 Jul 2015 10:43:55 -0000 1.6 +++ openacs-4/packages/dotlrn/www/deregister-confirm.adp 22 Jun 2016 08:25:00 -0000 1.6.2.1 @@ -41,7 +41,7 @@ </else> </p> <form method="post" action="deregister" class="form-inline"> -<input type=hidden name=referer value="@referer@"> +<input type="hidden" name="referer" value="@referer@"> @hidden_user_ids;noquote@ <ul> <if @num_users@ lt 99> @@ -53,7 +53,7 @@ <input type="submit" value="#dotlrn.Yes#"> </form> <form method="post" class="form-inline" action="@referer@" style="margin-top: 0px;"> - <input type=submit value="#dotlrn.No#"> + <input type="submit" value="#dotlrn.No#"> </form> <p> Index: openacs-4/packages/dotlrn/www/dotlrn-group-admin-faq.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-group-admin-faq.adp,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/dotlrn/www/dotlrn-group-admin-faq.adp 3 Jul 2015 10:43:55 -0000 1.6 +++ openacs-4/packages/dotlrn/www/dotlrn-group-admin-faq.adp 22 Jun 2016 08:25:00 -0000 1.6.2.1 @@ -28,15 +28,15 @@ <p> (For user information, please read the Help page in your Control Panel) <p>This FAQ contains these sections: -<p><a href="../Members"><b>Dealing with Members</b></a><br> - <a href="../Content"><b>Managing Content</b></a><br> - <b><a href="../Next%20Term">Preparing for Next Term </a></b> +<p><a href="../Members"><strong>Dealing with Members</strong></a><br> + <a href="../Content"><strong>Managing Content</strong></a><br> + <strong><a href="../Next%20Term">Preparing for Next Term </a></strong> <p> If your question is not answered, please email your site administrator. <H2><a name="Members">Dealing with Members</a></H2> <p> -<b>Q. Who will have access to my dotlearn class?</b><br> +<strong>Q. Who will have access to my dotlearn class?</strong><br> A. The default enrollment policy setting for new classes is "open" and any registered user can join the class. If you are concerned about who is accessing your class, you have a couple of options: 1) "close" your enrollment @@ -45,8 +45,8 @@ You can then approve or deny access through the Manage Membership page (off the Control Panel). All class administrators will also receive an email notification every time a user requests to join the class.<br> -<p> <b> Q: I am a TA and there are several cross-registered students in my class. - How can they get access to the materials in dotlearn? </b><br> +<p> <strong> Q: I am a TA and there are several cross-registered students in my class. + How can they get access to the materials in dotlearn? </strong><br> A: Non-institution students cannot have full access to dotlearn, but they can have access to the class materials. However, non-Sloan students should not self-register for an account. You can create Limited Access user accounts for cross-registered @@ -55,19 +55,19 @@ that they are already in the system when you try to create an account for them. In that case, add them to the class or community through the "Manage Membership" page link.<br> -<p> <b>Q. How do institution students get access to dotlearn?</b><br> +<p> <strong>Q. How do institution students get access to dotlearn?</strong><br> A. Any current institution member can self-register for an account. Please tell your students to register at the login page by entering their current email address and a password of their choice. After they submit the login and complete the registration page, their account will be approved within one business day. <br> -<p> <b>Q: How can I keep unregistered students or non-members from getting in - the class or community?</b> <br> +<p> <strong>Q: How can I keep unregistered students or non-members from getting in + the class or community?</strong> <br> A: Go to the Control Panel page for the class or community and change the Enrollment Policy to "closed" or "needs approval." Closed makes the group invisible to all but its members -- it will no longer be listed on the Join a Group page. "Needs Approval" means that users can request membership from the Join a Group page. You will receive an email from the user asking for approval. <br> -<p> <b>Q: How do students and members join if the group enrollment is closed?</b> +<p> <strong>Q: How do students and members join if the group enrollment is closed?</strong> <br> A: The only way to add users to a closed group is to add their names one at a time. Go to the group's Control Panel page and go to the Manage Membership @@ -77,25 +77,25 @@ they register, but if they are cross-registered students or non-MIT people, you should create Limited Access users accounts for them (through the Control Panel).<br> -<p> <b>Q: How can I let non-institution people have access to my community? </b><br> +<p> <strong>Q: How can I let non-institution people have access to my community? </strong><br> A: You can add them as Limited Access users or guests. Limited Access users have full access to the group, but cannot join other dotlearn groups; Limited Access Guests have limited access to your group (they do not see other users' personal information) and cannot join other groups. Assign non-institution students Limited Access accounts and non-institution people (speakers, guest lecturers, colleagues) Limited Access Guest accounts. <br> -<p> <b>Q. I am managing a community and some of our members are from outside my institution, +<p> <strong>Q. I am managing a community and some of our members are from outside my institution, so they cannot see information about other members, or participate in forums or surveys. We want them to have full access to just our community. What can - we do?</b><br> + we do?</strong><br> A. This is happening because the default privacy setting for groups does not allow Guests to see information about other students. If you need this setting changed for your group, send email to your site administrator. Include the name of your community and ask that your Guests be allowed to read personal information. Also, please let us know if you have any subgroups that also need to be set up this way. Each time a new subgroup is created, you will (unfortunately) need to email us to change the default privacy setting.<br> -<p> <b>Q: How do users change their passwords? </b><br> +<p> <strong>Q: How do users change their passwords? </strong><br> A: Full access users (current students, faculty, staff and alumni) can change their passwords through their Control Panel page in their personal portal. Limited Access users and Limited Access Guests (cross-registered students and @@ -104,28 +104,28 @@ <H2><a name="Members">Managing Content</a></H2> <p> -<b>Q. Do all the administrators of the class have the same privileges?</b> <br> +<strong>Q. Do all the administrators of the class have the same privileges?</strong> <br> A. Yes, all administrator roles have full control over the content and membership of the community.<br> -<p> <b>Q. I don't see survey listed on the Control Panel? What do I do?</b> <br> +<p> <strong>Q. I don't see survey listed on the Control Panel? What do I do?</strong> <br> A. Survey is not added by default to classes, communities and subgroups. Go to the Control Panel page, and on the left hand column, click on "Manage Applets" and Add the survey package. Then, return to the Control Panel and you will see Survey Administration > New Survey listed as an option.<br> -<p> <b>Q. I created a subgroup, but no one can see it. What do I do?</b> <br> +<p> <strong>Q. I created a subgroup, but no one can see it. What do I do?</strong> <br> A. It may be that the subgroup has a closed enrollment policy, so you can either add the members yourself or open the enrollment policy and allow members of the "parent" group to self-join.<br> -<p> <b>Q. How do I delete a subgroup? </b><br> +<p> <strong>Q. How do I delete a subgroup? </strong><br> A. Subgroups cannot be deleted, but you can "hide"them by closing the enrollment policy and removing any existing members. You can archive the subgroup, but if you do, it cannot be unarchived.<br> -<p> <b>Q: I created a forum and it sends email alerts to all group members. How - do I shut this off? How can an individual user shut them off?</b> <br> +<p> <strong>Q: I created a forum and it sends email alerts to all group members. How + do I shut this off? How can an individual user shut them off?</strong> <br> A: Each user must manage forum alerts through the "Edit My Notifications" page on the user Control Panel. Users can also subscribe to/unsubscribe from forum alerts at the top level page of an individual forum.<br> -<p> <b>Q: Note about Forums and email away messages. </b><br> +<p> <strong>Q: Note about Forums and email away messages. </strong><br> A: If a user activates an automated vacation/away message, all their forums will get caught in a loop of emails. To prevent this, advise students to cancel all their forum email alerts before going away. If this happens while they are @@ -134,15 +134,15 @@ <H2><a name="Next Term">Preparing for Next Term</a></H2> <p> - <b>Q. What happens to my class at the end of the semester?</b><br> + <strong>Q. What happens to my class at the end of the semester?</strong><br> A. At the end of the semester, all classes are closed to further enrollment, but the student and administrator members are left in place. Because you are not removed from the class, you will see it listed in your Groups portlet (on your My Space page), but it is closed and cannot be accessed by non-members. If you wish to have all student members removed, please request this by sending an email to your site administrator. <br> <p> - <b>Q. How do I request a class site for next term?</b><br> + <strong>Q. How do I request a class site for next term?</strong><br> A. In preparing for next term, there are two choices: 1) to copy a class from a previous term or 2) start with an empty class shell. Copying carries over customization - portlets and layout - and file storage content, and removes @@ -151,14 +151,14 @@ specify the term of the previous class. Also, please include the names and emails of the class administrators, so that they can be added to the new class. <br> <p> - <b>Q. How do I request a new community?</b> <br> + <strong>Q. How do I request a new community?</strong> <br> A. Send email to your site administrator. Please include the name of the community and the names and emails of administrators. </p> -<p><b>Q: Is there any documentation for class and community administrators? </b><br> +<p><strong>Q: Is there any documentation for class and community administrators? </strong><br> A: Please contact your site administrators for access to documentation and other training materials and for information about training sessions. <br> <p> - <b>Q: How do I use the "Add to Outlook" feature for a calendar event?</b> + <strong>Q: How do I use the "Add to Outlook" feature for a calendar event?</strong> <br> A: Both one-time and recurring events can be added to a user's Outlook calendar. On each event description is a link to "synch with Outlook: single event". Index: openacs-4/packages/dotlrn/www/dotlrn-user-faq.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/dotlrn-user-faq.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/dotlrn/www/dotlrn-user-faq.adp 3 Jul 2015 10:43:56 -0000 1.5 +++ openacs-4/packages/dotlrn/www/dotlrn-user-faq.adp 22 Jun 2016 08:25:00 -0000 1.5.2.1 @@ -23,15 +23,15 @@ <H1>dotlrn User FAQ</H1> <p> -<b>Q: How do I change my password? </b><br> +<strong>Q: How do I change my password? </strong><br> A: Go to your Control Panel page or to the Help icon in the page banner. Select "Change Password."<br> <p> -<b>Q: What if I forget my password?</b> <br> +<strong>Q: What if I forget my password?</strong> <br> A: If you forget your password, you can reset it from the login page using the "Forget Your Password?" link. <p> -<b>Q: How do I join classes and communities?</b> <br> +<strong>Q: How do I join classes and communities?</strong> <br> A: To join any open class or community, login to your personal portal (My Space page). On your MySpace page is a portlet called "Groups." Select the link to "Join/Add a Class or Community Group" in that portlet. The page @@ -40,31 +40,31 @@ membership in the group requires approval, the link will read "Request." <p> -<b>Q: What if a class or community is not listed on the Join/Add a Class or Community -Group page?</b> <br> +<strong>Q: What if a class or community is not listed on the Join/Add a Class or Community +Group page?</strong> <br> A: There would be two reasons for this. One, the group has a closed enrollment so you cannot join it. Two, the group does not have a site in <%=[ad_system_name]%>. To find out which of these is true or to be added to a closed group, contact the Faculty member, TA or program office about getting added or getting the class or community in <%=[ad_system_name]%>. <p> -<b>Q: How do I drop a class or community?</b> <br> +<strong>Q: How do I drop a class or community?</strong> <br> A: There are two ways to drop any group: 1) From the MySpace page, Groups portlet, click on "Join/Drop a Class or Community Group" and select the Drop icon for any of your current groups or 2) go to the Control Panel page and click the Drop icon next to the group you want to drop. <p> -<b>Q: If I drop my membership in a closed class or community, can I rejoin?</b> <br> +<strong>Q: If I drop my membership in a closed class or community, can I rejoin?</strong> <br> A: No, you cannot. You will need to contact the TA or community administrator to have them add you back in as a member. <p> -<b>Q: How do I keep from receiving emails from forums?</b> <br> +<strong>Q: How do I keep from receiving emails from forums?</strong> <br> A: You have control over whether and how you receive emails from forums and surveys. Login to <%=[ad_system_name]%>, go to the Control Panel page (or click on the Help icon). Then, click on "Edit My Notifications" and cancel or modify alerts individually. <p> -<b>Q: How do I use the "Add to Outlook" feature for a calendar event?</b> <br> +<strong>Q: How do I use the "Add to Outlook" feature for a calendar event?</strong> <br> A: Both one-time and recurring events can be added to a user's Outlook calendar. On each event description is a link to "synch with Outlook." If it is a recurring event, there will also be a second link, "All events." Index: openacs-4/packages/dotlrn/www/members-chunk-table.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/members-chunk-table.adp,v diff -u -r1.21 -r1.21.2.1 --- openacs-4/packages/dotlrn/www/members-chunk-table.adp 16 Jun 2015 20:57:01 -0000 1.21 +++ openacs-4/packages/dotlrn/www/members-chunk-table.adp 22 Jun 2016 08:25:00 -0000 1.21.2.1 @@ -55,7 +55,7 @@ </else> <td> <if @admin_p@ eq 1> - <input type=checkbox name=user_id value=@current_members.user_id@> + <input type="checkbox" name="user_id" value="@current_members.user_id@"> </if> </td> <td> @@ -93,8 +93,8 @@ <p> <if @admin_p@ eq 1> -<input type=hidden name=referer value="@referer@"> -<input type=submit value="#dotlrn.Drop_selected_members#"> +<input type="hidden" name="referer" value="@referer@"> +<input type="submit" value="#dotlrn.Drop_selected_members#"> </form> </if> @@ -127,7 +127,7 @@ <%= [acs_community_member_link -user_id $pending_users(user_id) -label "$pending_users(first_names) $pending_users(last_name)"] %> (<a href="mailto:@pending_users.email@">@pending_users.email@</a>) - <i>@pending_users.role@</i> + <em>@pending_users.role@</em> [<small> <include src="approve-link" url="approve?user_id=@pending_users.user_id@&referer=@referer@"> Index: openacs-4/packages/dotlrn/www/members-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/members-chunk.adp,v diff -u -r1.25 -r1.25.2.1 --- openacs-4/packages/dotlrn/www/members-chunk.adp 16 Jun 2015 20:57:01 -0000 1.25 +++ openacs-4/packages/dotlrn/www/members-chunk.adp 22 Jun 2016 08:25:00 -0000 1.25.2.1 @@ -28,7 +28,7 @@ (<a href="mailto:@users.email@">@users.email@</a>) </if> - <i>@users.role@</i> + <em>@users.role@</em> <if @admin_p@ eq 1 or @user_id@ eq @users.user_id@> [<small> @@ -76,7 +76,7 @@ (<a href="mailto:@pending_users.email@">@pending_users.email@</a>) </if> - <i>@pending_users.role@</i> + <em>@pending_users.role@</em> [<small> <include src="approve-link" url="approve?user_id=@pending_users.user_id@&referer=@referer@"> Index: openacs-4/packages/dotlrn/www/admin/class.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/class.adp,v diff -u -r1.36 -r1.36.2.1 --- openacs-4/packages/dotlrn/www/admin/class.adp 3 Jul 2015 10:43:57 -0000 1.36 +++ openacs-4/packages/dotlrn/www/admin/class.adp 22 Jun 2016 08:25:00 -0000 1.36.2.1 @@ -71,7 +71,7 @@ <table> <tr bgcolor="#eeeeee"> <td align="left" colspan="4"> - <i>#dotlrn.no_class_instances#</i> + <em>#dotlrn.no_class_instances#</em> </td> </tr> </table> Index: openacs-4/packages/dotlrn/www/admin/classes-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/classes-chunk.adp,v diff -u -r1.23 -r1.23.6.1 --- openacs-4/packages/dotlrn/www/admin/classes-chunk.adp 9 Nov 2008 23:29:23 -0000 1.23 +++ openacs-4/packages/dotlrn/www/admin/classes-chunk.adp 22 Jun 2016 08:25:00 -0000 1.23.6.1 @@ -52,7 +52,7 @@ <table> <tr bgcolor="#eeeeee"> <td align="left" colspan="4"> - <i>#dotlrn.no_classes#</i> + <em>#dotlrn.no_classes#</em> </td> </tr> </table> Index: openacs-4/packages/dotlrn/www/admin/clubs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/clubs.adp,v diff -u -r1.28 -r1.28.2.1 --- openacs-4/packages/dotlrn/www/admin/clubs.adp 3 Jul 2015 10:43:57 -0000 1.28 +++ openacs-4/packages/dotlrn/www/admin/clubs.adp 22 Jun 2016 08:25:00 -0000 1.28.2.1 @@ -38,7 +38,7 @@ <table> <tr bgcolor="#eeeeee"> <td align="left" colspan="4"> - <i>#dotlrn.no_communities#</i> + <em>#dotlrn.no_communities#</em> </td> </tr> </table> Index: openacs-4/packages/dotlrn/www/admin/cockpit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/cockpit.adp,v diff -u -r1.4 -r1.4.4.1 Binary files differ Index: openacs-4/packages/dotlrn/www/admin/need-term-note.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/need-term-note.adp,v diff -u -r1.8 -r1.8.20.1 --- openacs-4/packages/dotlrn/www/admin/need-term-note.adp 11 Dec 2002 13:53:51 -0000 1.8 +++ openacs-4/packages/dotlrn/www/admin/need-term-note.adp 22 Jun 2016 08:25:00 -0000 1.8.20.1 @@ -18,6 +18,6 @@ %> -<i> +<em> #dotlrn.you_need_to_create_terms_to_create_classes# -</i> +</em> Index: openacs-4/packages/dotlrn/www/admin/term.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/term.adp,v diff -u -r1.28 -r1.28.2.1 --- openacs-4/packages/dotlrn/www/admin/term.adp 3 Jul 2015 10:43:58 -0000 1.28 +++ openacs-4/packages/dotlrn/www/admin/term.adp 22 Jun 2016 08:25:00 -0000 1.28.2.1 @@ -94,7 +94,7 @@ <table> <tr bgcolor="#eeeeee"> <td> - <i>#dotlrn.no_class_instances#</i> + <em>#dotlrn.no_class_instances#</em> </td> </tr> </table> Index: openacs-4/packages/dotlrn/www/admin/terms.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/terms.adp,v diff -u -r1.21 -r1.21.2.1 --- openacs-4/packages/dotlrn/www/admin/terms.adp 3 Jul 2015 10:43:58 -0000 1.21 +++ openacs-4/packages/dotlrn/www/admin/terms.adp 22 Jun 2016 08:25:00 -0000 1.21.2.1 @@ -35,7 +35,7 @@ <table> <tr bgcolor="#eeeeee"> <td align="left" colspan="4"> - <i>#dotlrn.No_Terms#</i> + <em>#dotlrn.No_Terms#</em> </td> </tr> </table> Index: openacs-4/packages/dotlrn/www/admin/user-nuke.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/user-nuke.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/dotlrn/www/admin/user-nuke.adp 3 Jul 2015 10:43:58 -0000 1.4 +++ openacs-4/packages/dotlrn/www/admin/user-nuke.adp 22 Jun 2016 08:25:00 -0000 1.4.2.1 @@ -12,8 +12,8 @@ <p> -#dotlrn.Last_Visit# <b><if @last_visit@ eq "">#dotlrn.Never_visited#</if><else>@pretty_last_visit@</else></b><br> -#dotlrn.Number_of_db_objects#: <b>@n_objects@</b> +#dotlrn.Last_Visit# <strong><if @last_visit@ eq "">#dotlrn.Never_visited#</if><else>@pretty_last_visit@</else></strong><br> +#dotlrn.Number_of_db_objects#: <strong>@n_objects@</strong> </p> Index: openacs-4/packages/dotlrn/www/admin/users-bulk-upload.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-bulk-upload.adp,v diff -u -r1.15 -r1.15.2.1 --- openacs-4/packages/dotlrn/www/admin/users-bulk-upload.adp 3 Jul 2015 10:43:58 -0000 1.15 +++ openacs-4/packages/dotlrn/www/admin/users-bulk-upload.adp 22 Jun 2016 08:25:00 -0000 1.15.2.1 @@ -50,25 +50,25 @@ </p> <ul> - <li><tt>first_names</tt> - <em>#dotlrn.required#</em></li> - <li><tt>last_name</tt> - <em>#dotlrn.required#</em></li> - <li><tt>email</tt> - <em>#dotlrn.required#</em></li> - <li><tt>username</tt> - <em>#dotlrn.optional_defaults_to# email</em></li> - <li><tt>password</tt> - <em>#dotlrn.optional_defaults_to# random value</em></li> - <li><tt>type</tt> - <em>#dotlrn.required#</em> #dotlrn.must_have_values# + <li><kbd>first_names</kbd> - <em>#dotlrn.required#</em></li> + <li><kbd>last_name</kbd> - <em>#dotlrn.required#</em></li> + <li><kbd>email</kbd> - <em>#dotlrn.required#</em></li> + <li><kbd>username</kbd> - <em>#dotlrn.optional_defaults_to# email</em></li> + <li><kbd>password</kbd> - <em>#dotlrn.optional_defaults_to# random value</em></li> + <li><kbd>type</kbd> - <em>#dotlrn.required#</em> #dotlrn.must_have_values# <ul> <li>professor</li> <li>student</li> <li>admin</li> <li>external</li> </ul> </li> - <li><tt>access_level</tt> - <em>#dotlrn.optional_defaults_to# full</em> - - <em>#dotlrn.must_have_values#</em> <tt>full</tt>, <tt>limited</tt></li> - <li><tt>guest</tt> - <em>#dotlrn.optional_defaults_to# f</em> - - <em>#dotlrn.must_have_values#</em> <tt>t</tt>, <tt>f</tt></li> - <li><tt>notify</tt> - <em>#dotlrn.optional_defaults_to# f</em> - <em>#dotlrn.must_have_values#</em> <tt>t</tt>, <tt>f</tt></li> + <li><kbd>access_level</kbd> - <em>#dotlrn.optional_defaults_to# full</em> - + <em>#dotlrn.must_have_values#</em> <kbd>full</kbd>, <kbd>limited</kbd></li> + <li><kbd>guest</kbd> - <em>#dotlrn.optional_defaults_to# f</em> - + <em>#dotlrn.must_have_values#</em> <kbd>t</kbd>, <kbd>f</kbd></li> + <li><kbd>notify</kbd> - <em>#dotlrn.optional_defaults_to# f</em> + <em>#dotlrn.must_have_values#</em> <kbd>t</kbd>, <kbd>f</kbd></li> </ul> Index: openacs-4/packages/dotlrn/www/admin/users-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk.adp,v diff -u -r1.27 -r1.27.8.1 --- openacs-4/packages/dotlrn/www/admin/users-chunk.adp 15 May 2007 20:14:25 -0000 1.27 +++ openacs-4/packages/dotlrn/www/admin/users-chunk.adp 22 Jun 2016 08:25:00 -0000 1.27.8.1 @@ -96,10 +96,10 @@ <td align="center"> <if @user_id@ ne @users.user_id@> <if @users.site_wide_admin_p@ true> - <b>#dotlrn.Yes#</b> | <a href="@users.swa_revoke_url@" title="#dotlrn.Revoke_site_wide_admin#">#dotlrn.No#</a> + <strong>#dotlrn.Yes#</strong> | <a href="@users.swa_revoke_url@" title="#dotlrn.Revoke_site_wide_admin#">#dotlrn.No#</a> </if> <else> - <a href="@users.swa_grant_url@" title="#dotlrn.Grant_site_wide_admin#">#dotlrn.Yes#</a> | <b>#dotlrn.No#</b> + <a href="@users.swa_grant_url@" title="#dotlrn.Grant_site_wide_admin#">#dotlrn.Yes#</a> | <strong>#dotlrn.No#</strong> </else> </if> <else>#dotlrn.Yes#</else> @@ -112,7 +112,7 @@ </if> <else> <tr bgcolor="#eeeeee"> - <td align="left" colspan="4"><i>#dotlrn.No_Users#</i></td> + <td align="left" colspan="4"><em>#dotlrn.No_Users#</em></td> </tr> </else> Index: openacs-4/packages/dotlrn/www/doc/architecture-overview.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/architecture-overview.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/dotlrn/www/doc/architecture-overview.adp 3 Jul 2015 10:43:58 -0000 1.3 +++ openacs-4/packages/dotlrn/www/doc/architecture-overview.adp 22 Jun 2016 08:25:00 -0000 1.3.2.1 @@ -30,23 +30,23 @@ and roles within the learning community. <li> <strong>a site node</strong>: this serves to define a consistent URL for the learning community, and to segment away each -communities from one another. An example is <tt>/dotlrn/alumni-1998</tt>. +communities from one another. An example is <kbd>/dotlrn/alumni-1998</kbd>. <li> <strong>an instance of the dotLRN Community Manager package</strong>: this serves to display community-specific data in a way that is clearly segmented away from the other learning -communities using the <i>acs-subsite</i> constructs. +communities using the <em>acs-subsite</em> constructs. </ul> <h3>OpenACS Group</h3> -The core dotLRN group type is <tt>dotlrn_community</tt>. This group +The core dotLRN group type is <kbd>dotlrn_community</kbd>. This group type defines some basic attributes that all communities have: <ul> -<li> <b>a short name</b>: a simple name with no spaces, no special +<li> <strong>a short name</strong>: a simple name with no spaces, no special characters, usually all lowercase. e.g. finance-101 -<li> <b>a pretty name</b>: a name that is used in pretty +<li> <strong>a pretty name</strong>: a name that is used in pretty presentation. e.g. Finance 101 -<li> <b>start and end dates</b>: for communities that have certain +<li> <strong>start and end dates</strong>: for communities that have certain validity periods, a start date and end date. </ul> @@ -62,76 +62,76 @@ future, if communities end up being multi-mounted, there will have to remain a canonical location for the community in order to ensure maximal modularity - specifically the ability to point to a -community's URL using only the <tt>community_id</tt> as a starting +community's URL using only the <kbd>community_id</kbd> as a starting point. <h3>Instance of dotLRN Community Manager</h3> -The core dotLRN OpenACS package is called <tt>dotlrn</tt> +The core dotLRN OpenACS package is called <kbd>dotlrn</kbd> (surprisingly enough). This package is meant to be remounted to handle -community types and specific communities. A <tt>package_id</tt> +community types and specific communities. A <kbd>package_id</kbd> corresponds to each community. <p> The group types for these two dotLRN Community Types are -<tt>dotlrn_class_instance</tt> and <tt>dotlrn_club</tt>. +<kbd>dotlrn_class_instance</kbd> and <kbd>dotlrn_club</kbd>. <h2>Use of NPA</h2> -dotLRN makes heavy use of the <b>New Portal Architecture</b>. +dotLRN makes heavy use of the <strong>New Portal Architecture</strong>. <p> Each full-access user has a personal portal where all data from all -communities is centralized in one place. This is called the <b>dotLRN -User Portal</b>. +communities is centralized in one place. This is called the <strong>dotLRN +User Portal</strong>. <p> Each community has a non-member portal which displays information to those browsing the system and wanting to find out more about a -community before joining it. This is called the <b>dotLRN Community -Non-Member Portal</b>. +community before joining it. This is called the <strong>dotLRN Community +Non-Member Portal</strong>. <p> Each community also has an administrative portal which centralizes all administrative functionality for that community. This is called the -<b>dotLRN Community Admin Portal</b>. +<strong>dotLRN Community Admin Portal</strong>. <p> -Finally, each community member has her own <b>dotlrn Community Member -Portal</b>. The important distinction here is that there is a +Finally, each community member has her own <strong>dotlrn Community Member +Portal</strong>. The important distinction here is that there is a different portal for each member of this community. Thus, if a community has 100 members, there are 100 individually managed -portals. These portals are initially created from the <b>dotLRN -Community Portal Template</b> that administrators of the community control. +portals. These portals are initially created from the <strong>dotLRN +Community Portal Template</strong> that administrators of the community control. <h2>dotLRN Applets</h2> dotLRN Communities have various packages of functionality. These -packages (<b>dotLRN applets</b>) are much like existing OpenACS 4 +packages (<strong>dotLRN applets</strong>) are much like existing OpenACS 4 packages, but with added specifications, special callback interfaces, and predictable APIs that not every OpenACS 4 package will have. <p> -Thus, a <strong>dotLRN Applet</strong> is composed of <b>three</b> +Thus, a <strong>dotLRN Applet</strong> is composed of <strong>three</strong> pieces that may each be a separate OpenACS package: <ul> -<li> <b>OpenACS raw functionality</b>, to provide discussion +<li> <strong>OpenACS raw functionality</strong>, to provide discussion forum functionality. As much as possible, this shouldn't depend on other dotLRN components. (e.g. bboard) -<li> <b>OpenACS portlet</b>, using the New Portal Architecture (NPA), +<li> <strong>OpenACS portlet</strong>, using the New Portal Architecture (NPA), to provide the ability to display the raw functionality in a portal interface. This obviously depends on the the NPA, but should otherwise be as independent as possible from dotLRN. (e.g. bboard-portlet) -<li> <b>dotLRN functionality hooks</b>, to link the raw functionality +<li> <strong>dotLRN functionality hooks</strong>, to link the raw functionality into the appropriate dotLRN structure. This obviously depends on dotLRN, but should be as thin a layer as possible on top of the the previous two components. (e.g. dotlrn-bboard). @@ -150,33 +150,33 @@ The relationship between dotLRN and the specific dotLRN-dependent packages (dotlrn-bboard, dotlrn-faq, etc...) is defined using -<b>ACS Service Contract</b>. ACS Service Contract defines a standard +<strong>ACS Service Contract</strong>. ACS Service Contract defines a standard provider/consumer interface with special contract APIs. The dotLRN -system defines the <b>dotLRN Applet Contract</b>, which includes the +system defines the <strong>dotLRN Applet Contract</strong>, which includes the following operations: <ul> -<li> <b>GetPrettyName</b>: Obtain a pretty, presentable name for the +<li> <strong>GetPrettyName</strong>: Obtain a pretty, presentable name for the applet in question. -<li> <b>AddAppletToCommunity</b>: Add the applet to a +<li> <strong>AddAppletToCommunity</strong>: Add the applet to a new community. This will most probably entail instantiating a new package for this functionality, mounted below the community's main mount point. It will also involve setting up applet-specific data structures (e.g. a new forum inside bboard). -<li> <b>RemoveAppletFromCommunity</b>: Remove the applet from the +<li> <strong>RemoveAppletFromCommunity</strong>: Remove the applet from the community. This will entail cleaning up any applet-specific data structures, removing the mount point and package instance. -<li> <b>AddUser</b>: add a user to dotLRN in general. This user has +<li> <strong>AddUser</strong>: add a user to dotLRN in general. This user has not yet joined any community, but may need user-specific functionality enabled (a private folder for files, a personal calendar, etc..) -<li> <b>RemoveUser</b>: remove a user from dotLRN in general. This +<li> <strong>RemoveUser</strong>: remove a user from dotLRN in general. This cleans up the AddUser operation. -<li> <b>AddUserToCommunity</b>: add a user to the community, and perform any +<li> <strong>AddUserToCommunity</strong>: add a user to the community, and perform any applet-specific related actions. For applets that are represented via a portlet (which is often, but not always, the case), this will add the right portlet to the user's portal page for that community. It will also add the generic portlet to the user's main, cross-community workspace. -<li> <b>RemoveUserFromCommunity</b>: remove a user from a community, +<li> <strong>RemoveUserFromCommunity</strong>: remove a user from a community, and thus clean up the actions of AddUserToCommunity. </ul> Index: openacs-4/packages/dotlrn/www/doc/dotlrn-faq.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/dotlrn-faq.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/dotlrn/www/doc/dotlrn-faq.adp 3 Jul 2015 10:43:58 -0000 1.4 +++ openacs-4/packages/dotlrn/www/doc/dotlrn-faq.adp 22 Jun 2016 08:25:00 -0000 1.4.2.1 @@ -85,9 +85,9 @@ <p class="question">Q: How is dotLRN spelled and pronounced?</p> <p class="answer"> - It's sometimes written as <tt>.LRN</tt>, but the spelling and - capitalization <tt>dotLRN</tt> is preferred. hackers who type a - lot usually write <tt>dotlrn</tt>. <tt>dotLRN</tt> is pronounced + It's sometimes written as <kbd>.LRN</kbd>, but the spelling and + capitalization <kbd>dotLRN</kbd> is preferred. hackers who type a + lot usually write <kbd>dotlrn</kbd>. <kbd>dotLRN</kbd> is pronounced "daught-learn" We are currently accepting voice applications for the dotLRN MP3 pronounciation file. </p> Index: openacs-4/packages/dotlrn/www/doc/dotlrn-install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/dotlrn-install.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/dotlrn/www/doc/dotlrn-install.adp 3 Jul 2015 10:43:58 -0000 1.4 +++ openacs-4/packages/dotlrn/www/doc/dotlrn-install.adp 22 Jun 2016 08:25:00 -0000 1.4.2.1 @@ -56,7 +56,7 @@ <p> dotLRN requires some more modules that are not in - <tt>acs-core</tt>, but not all of the packages in the OpenACS + <kbd>acs-core</kbd>, but not all of the packages in the OpenACS source tree. Next are the commands to get these modules. </p> @@ -68,15 +68,15 @@ </pre> </p> <p> - <em>Installation timesaver: In the <tt>/packages/ref-timezones/sql/common/</tt> - directory, cut down the files to a few <tt>insert</tt> statements apiece. + <em>Installation timesaver: In the <kbd>/packages/ref-timezones/sql/common/</kbd> + directory, cut down the files to a few <kbd>insert</kbd> statements apiece. This is fine for test system, and will save you a lot of time in the installation process.</em> </p> <p> - You will now have an <tt>/openacs-4</tt> directory with all of + You will now have an <kbd>/openacs-4</kbd> directory with all of OpenACS required by dotLRN. To double check, your - <tt>/openacs-4/packages</tt> directory should look similar to this: + <kbd>/openacs-4/packages</kbd> directory should look similar to this: </p> <pre> $ ls @@ -103,9 +103,9 @@ <p> - Next, copy the <tt>/openacs-4</tt> directory to where ever you + Next, copy the <kbd>/openacs-4</kbd> directory to where ever you prefer your webserver root to be, traditionally - <tt>/web</tt>. Now you can continue with the OACS <a + <kbd>/web</kbd>. Now you can continue with the OACS <a href="http://openacs.org/doc/openacs-5-2/openacs.html">installation document</a> at the third point "Prepare the database" of the 2nd section "Installation option 2". Continue with the Index: openacs-4/packages/dotlrn/www/doc/nomenclature.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/nomenclature.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/dotlrn/www/doc/nomenclature.adp 3 Jul 2015 10:43:59 -0000 1.3 +++ openacs-4/packages/dotlrn/www/doc/nomenclature.adp 22 Jun 2016 08:25:00 -0000 1.3.2.1 @@ -3,7 +3,7 @@ <h1>dotLRN Nomenclature: a dotLRN Primer</h1> by <a href="mailto:ben@openforce.net">Ben Adida</a>, part of <a -href="./">dotLRN Documentation</a>. (last updated: <i>28 February 2002</i>) +href="./">dotLRN Documentation</a>. (last updated: <em>28 February 2002</em>) <hr><P> dotLRN is a <strong>Learning Community Management System</strong> @@ -15,7 +15,7 @@ <p> <h2>1. dotLRN Communities</h2> -The core concept within dotLRN is the <b>dotLRN User Community</b>. +The core concept within dotLRN is the <strong>dotLRN User Community</strong>. <h3>Community</h3> @@ -28,16 +28,16 @@ <h3>Class</h3> -A <b>class</b> is a topic of instruction, such as "Finance 101." A -class is <b><i>not</i></b> a community (this will become clearer +A <strong>class</strong> is a topic of instruction, such as "Finance 101." A +class is <strong><em>not</em></strong> a community (this will become clearer soon). <p> <h3>Class Instances and Clubs</h3> Two basic types of communities implemented in core dotLRN are -<b>Class Instances</b> and <b>Clubs</b>. Class Instances are +<strong>Class Instances</strong> and <strong>Clubs</strong>. Class Instances are for structured groups of students, while Clubs are for unstructured student activities. A Class Instance, as its name indicates, is a specific instance of a Class. "Finance 101 - Spring 2002" is an @@ -50,38 +50,38 @@ <h3>Open, Wait, Closed Communities</h3> -Communities can have one of three <b>Join Policies</b>. A join policy +Communities can have one of three <strong>Join Policies</strong>. A join policy defines the process by which a dotLRN User can become a member of the -community. For now, we will consider only <b>dotLRN Full Access -Users</b> (see below for more information on other types of dotLRN +community. For now, we will consider only <strong>dotLRN Full Access +Users</strong> (see below for more information on other types of dotLRN users). <p> -A community with <b>open join policy</b> is visible in read-only +A community with <strong>open join policy</strong> is visible in read-only state to non-members. Any full-access user can join the community at will, without the intervention of any other user. <p> -A community with <b>wait join policy</b> is visible in read-only state +A community with <strong>wait join policy</strong> is visible in read-only state to non-members. A full-access user can apply to join the community. The application must be approved by an administrator of the community. <p> -A communty with <b>closed join policy</b> is not visible to +A communty with <strong>closed join policy</strong> is not visible to non-members. Users become members only when explicitly added by the community administrator. <p> -<h3><i>in MIT SloanSpace</i>: Class Instances and Communities</h3> +<h3><em>in MIT SloanSpace</em>: Class Instances and Communities</h3> -In MIT SloanSpace, dotLRN Communities are referred to as <b>SloanSpace -Groups</b>, while dotLRN Clubs are referred to as <b>SloanSpace -Communities</b>. +In MIT SloanSpace, dotLRN Communities are referred to as <strong>SloanSpace +Groups</strong>, while dotLRN Clubs are referred to as <strong>SloanSpace +Communities</strong>. <p> @@ -98,18 +98,18 @@ <h2>2. dotLRN Users</h2> -A <b>dotLRN User</b> is an individual with an email address username and a +A <strong>dotLRN User</strong> is an individual with an email address username and a password to the dotLRN system. Each user is uniquely identified by email address. <h3>Access Level: Limited or Full</h3> -dotLRN users can have either <b>Limited Access</b> or <b>Full -Access</b>. +dotLRN users can have either <strong>Limited Access</strong> or <strong>Full +Access</strong>. <p> -A <b>limited-access user</b> is one who has access only to class instances +A <strong>limited-access user</strong> is one who has access only to class instances and communities she is registered for and has no ability to browse any other section of the dotLRN application. This applies even to open communities: if a limited-access user is not a member of a @@ -118,7 +118,7 @@ <p> -A <b>full-access user</b> is one who has access to all browsing +A <strong>full-access user</strong> is one who has access to all browsing sections of the dotLRN application. A full-access user can surf around and register for open communities, apply to be accepted into wait communities, etc... A full-access user also has the ability to store @@ -128,7 +128,7 @@ <h3>Access to Private Information</h3> -Certain users of the system may be <b>dotLRN Guests</b>, meaning that +Certain users of the system may be <strong>dotLRN Guests</strong>, meaning that they do not belong to the parent organization that runs the dotLRN instance. These guests may participate in the community as full-fledged members but, for certain legal or privacy reasons, may @@ -143,7 +143,7 @@ dotLRN users have system-wide profile information. For example, in the context of a Course Management System like MIT SloanSpace, they may be -<b>Professors</b>, <b>Students</b>, or <b>Administrative Staff</b>. +<strong>Professors</strong>, <strong>Students</strong>, or <strong>Administrative Staff</strong>. These system-wide roles define the user's specific profile in the system as a whole, without regards to community-specific roles. @@ -152,21 +152,21 @@ <h3>Community-Specific Roles</h3> dotLRN users have specific roles within the communities they belong -to. These roles are classified in two main categories: <b>dotLRN -Community Members</b> and <b>dotLRN Community Admins</b>. +to. These roles are classified in two main categories: <strong>dotLRN +Community Members</strong> and <strong>dotLRN Community Admins</strong>. <p> -<b>dotLRN Community Members</b> of a given community have normal +<strong>dotLRN Community Members</strong> of a given community have normal read/write access to a community. They cannot perform administrative functions, like create a new forum, add group calendar events, create a new survey, etc... However, they can contribute to existing discussion forums, view calendar events, and respond to surveys. <p> -<b>dotLRN Community Admins</b> have all the privileges of normal -community members <i>plus</i> complete administrative rights over all +<strong>dotLRN Community Admins</strong> have all the privileges of normal +community members <em>plus</em> complete administrative rights over all components of the community. dotLRN Community Admins completely control a community: they need no further help from any other users to add data, applications, or users to their workspace. @@ -175,28 +175,28 @@ <h2>3. dotLRN Applets</h2> A dotLRN community is mostly a container of users and applets. A -<b>dotLRN Applet</b> (nothing to do with a Java applet) is a small +<strong>dotLRN Applet</strong> (nothing to do with a Java applet) is a small application that can be added to the community to enable new functionality. <p> Examples of existing applets include: Discussion Forums, Surveys, -FAQs, News, Calendaring. These applets are <b>scoped</b> in order to +FAQs, News, Calendaring. These applets are <strong>scoped</strong> in order to correctly segment communities from one another. Data that belongs to one community is not viewable by another: it is as if it doesn't exist unless you are in the appropriate community. <p> -Certain applets are <b>community-centric</b> in that they offer +Certain applets are <strong>community-centric</strong> in that they offer functionality that makes sense only in the context of a given community. Discussion Forums is one solid example of this: a discussion forum must pertain to a given community. <p> -Other applets are <b>user-centric</b> in that they also manage data +Other applets are <strong>user-centric</strong> in that they also manage data that is user-related, not linked to any given community. Calendaring is one such applet: although there are community events, there are also personal events. @@ -205,17 +205,17 @@ <h2>4. Portals</h2> -The entire dotLRN architecture is based on the <b>New Portal -Architecture</b>. The design and specifics of this architecture are +The entire dotLRN architecture is based on the <strong>New Portal +Architecture</strong>. The design and specifics of this architecture are described in another document, but the basic terminology and concepts are as follows. <p> <h3>Portal Page</h3> -A <b>Portal Page</b> is a single page display of portal boxes. A -portal page has a <b>Portal Layout</b> that defines how the boxes are +A <strong>Portal Page</strong> is a single page display of portal boxes. A +portal page has a <strong>Portal Layout</strong> that defines how the boxes are arranged on the page. Common layout schemes include 2-column, 3-column, 3-column-with-header. New portal layouts can be implemented at will. @@ -227,23 +227,23 @@ <h3>Portal</h3> -A <b>Portal</b> is a set of portal pages that are tied together so +A <strong>Portal</strong> is a set of portal pages that are tied together so that a browser may navigate easily between the various portal pages. This is particularly useful when portal boxes need to be organized by functionality theme. <h3>Portlet or Portal Datasource</h3> -A <b>Portlet</b> or <b>Portal Datasource</b> is a set of functionality +A <strong>Portlet</strong> or <strong>Portal Datasource</strong> is a set of functionality that is presented in the form of a portal box. A bboard portlet, for example, is functionality that displays discussion forums inside a portal box. <h3>Portal Element</h3> -A <b>Portal Element</b> is a single box on a given portal page. A box +A <strong>Portal Element</strong> is a single box on a given portal page. A box that display discussion forum information on Jane Doe's personal -portal page #2 is <b><i>one</i></b> portal element that corresponds to +portal page #2 is <strong><em>one</em></strong> portal element that corresponds to the instantiation of portlet within a portal page. <p> @@ -258,24 +258,24 @@ <h3>Portal Themes</h3> -A portal page can be rendered in a given <b>Portal Theme</b> that -determines the look-and-feel of each box. The layout is <b>NOT</b> +A portal page can be rendered in a given <strong>Portal Theme</strong> that +determines the look-and-feel of each box. The layout is <strong>NOT</strong> determined here, only the specific look-and-feel of portal element borders, buttons, and internals. <h3>Portlet Parameters; Portal Element Parameter Values</h3> -For each portlet, there is a set of <b>Portlet Parameters</b>. For -example, the calendar portlet has a <tt>calendar_view</tt> parameter +For each portlet, there is a set of <strong>Portlet Parameters</strong>. For +example, the calendar portlet has a <kbd>calendar_view</kbd> parameter that indicates whether the portlet should display data in the form of a list, day-, week-, or month- view. <p> -Each Portal Element has <b>Portal Element Parameter Values</b> for +Each Portal Element has <strong>Portal Element Parameter Values</strong> for each parameter of the portlet it instantiates. For example, the calendar portal element on Jane Doe's personal portal may have a value -of "day" for the <tt>calendar_view</tt> parameter. +of "day" for the <kbd>calendar_view</kbd> parameter. <p> Index: openacs-4/packages/dotlrn/www/doc/permission-api.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/permission-api.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/dotlrn/www/doc/permission-api.adp 3 Jul 2015 10:43:59 -0000 1.3 +++ openacs-4/packages/dotlrn/www/doc/permission-api.adp 22 Jun 2016 08:25:00 -0000 1.3.2.1 @@ -23,7 +23,7 @@ <p> For this to work, the actual privileges used throughout dotLRN and all -of its modules must be <b>consistent</b>. Since permissions follow an +of its modules must be <strong>consistent</strong>. Since permissions follow an inheritance path, we must make sure everything bootstraps off the basic read, write, create, delete, admin privileges. @@ -32,19 +32,19 @@ To better explain the situation, we want the following to happen: <ul> <li> Hal is a member of "Intro to Computer Science Spring 2002" group, with relationship -type <tt>dotlrn_instructor_rel</tt> to that group. +type <kbd>dotlrn_instructor_rel</kbd> to that group. <li> An FAQ about the Computer Science Program is created for "Intro -to Computer Science Spring 2002", with <tt>context_id</tt> pointing to +to Computer Science Spring 2002", with <kbd>context_id</kbd> pointing to the course. <li> A relational segment "Intro to CS Spring 2002 Instructors" is created on the "Intro to CS Spring 2002" group and -<tt>dotlrn_instructor_rel</tt> relationship type. -<li> The privilege <tt>faq_admin</tt> exists, inheriting from -the core OpenACS <tt>admin</tt> privilege. +<kbd>dotlrn_instructor_rel</kbd> relationship type. +<li> The privilege <kbd>faq_admin</kbd> exists, inheriting from +the core OpenACS <kbd>admin</kbd> privilege. <li> A permission is granted: "Intro to CS Spring 2002 Instructors" -are given the <tt>admin</tt> privilege on the course "Intro to +are given the <kbd>admin</kbd> privilege on the course "Intro to CS Spring 2002". -<li> <b>Thus</b>, automatically, Hal has the right to admin the FAQ, +<li> <strong>Thus</strong>, automatically, Hal has the right to admin the FAQ, because the admin privilege translates to the faq_admin privilege by inheritance, Hal is part of the relational segment in question, and the FAQ in question has a context_id pointing to the course. It's BEAUTIFUL! @@ -54,36 +54,36 @@ These are fairly straight-forward: <ul> -<li> <tt>dotlrn::user_add user_id</tt> -<li> <tt>dotlrn::user_remove user_id</tt> +<li> <kbd>dotlrn::user_add user_id</kbd> +<li> <kbd>dotlrn::user_remove user_id</kbd> <p> -<li> <tt>dotlrn::guest_add community_id user_id</tt> -<li> <tt>dotlrn::guest_remove community_id user_id</tt> +<li> <kbd>dotlrn::guest_add community_id user_id</kbd> +<li> <kbd>dotlrn::guest_remove community_id user_id</kbd> </ul> <h3>Access Control API</h3> <ul> -<li> <tt>dotlrn::user_can_browse_p ?user_id?</tt> -<li> <tt>dotlrn::require_user_browse ?user_id?</tt> +<li> <kbd>dotlrn::user_can_browse_p ?user_id?</kbd> +<li> <kbd>dotlrn::require_user_browse ?user_id?</kbd> <p> -<li> <tt>dotlrn::user_can_read_sensitive_data ?user_id?</tt> -<li> <tt>dotlrn::require_user_read_sensitive_data ?user_id?</tt> +<li> <kbd>dotlrn::user_can_read_sensitive_data ?user_id?</kbd> +<li> <kbd>dotlrn::require_user_read_sensitive_data ?user_id?</kbd> <p> -<li> <tt>dotlrn::user_can_read_community_type_p community_type ?user_id?</tt> -<li> <tt>dotlrn::require_user_read_community_type community_type -?user_id?</tt> +<li> <kbd>dotlrn::user_can_read_community_type_p community_type ?user_id?</kbd> +<li> <kbd>dotlrn::require_user_read_community_type community_type +?user_id?</kbd> <p> -<li> <tt>dotlrn::user_can_read_community_p community_id ?user_id?</tt> -<li> <tt>dotlrn::require_user_read_community community_id -?user_id?</tt> +<li> <kbd>dotlrn::user_can_read_community_p community_id ?user_id?</kbd> +<li> <kbd>dotlrn::require_user_read_community community_id +?user_id?</kbd> <p> -<li> <tt>dotlrn::user_community_member_p community_id ?user_id?</tt> -<li> <tt>dotlrn::require_user_community_member community_id -?user_id?</tt> +<li> <kbd>dotlrn::user_community_member_p community_id ?user_id?</kbd> +<li> <kbd>dotlrn::require_user_community_member community_id +?user_id?</kbd> <p> -<li> <tt>dotlrn::user_can_admin_community_p community_id -?user_id?</tt> -<li> <tt>dotlrn::require_user_admin_community community_id ?user_id?</tt> +<li> <kbd>dotlrn::user_can_admin_community_p community_id +?user_id?</kbd> +<li> <kbd>dotlrn::require_user_admin_community community_id ?user_id?</kbd> </ul> Index: openacs-4/packages/dotlrn/www/doc/permission-overview.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/permission-overview.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/dotlrn/www/doc/permission-overview.adp 3 Jul 2015 10:43:59 -0000 1.3 +++ openacs-4/packages/dotlrn/www/doc/permission-overview.adp 22 Jun 2016 08:25:00 -0000 1.3.2.1 @@ -109,7 +109,7 @@ <h4>Permissions</h4> <ul> <li> All registered dotLRN users can access this section -<li> All guests of <b>that</b> class can access this section +<li> All guests of <strong>that</strong> class can access this section <li> Registered users associated with a class instance of this class will see specific links to the proper class instances </ul> Index: openacs-4/packages/dotlrn/www/doc/writing-a-dotlrn-package.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/doc/writing-a-dotlrn-package.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/dotlrn/www/doc/writing-a-dotlrn-package.adp 3 Jul 2015 10:43:59 -0000 1.3 +++ openacs-4/packages/dotlrn/www/doc/writing-a-dotlrn-package.adp 22 Jun 2016 08:25:00 -0000 1.3.2.1 @@ -19,7 +19,7 @@ As far as dotLRN is concerned, a dotLRN package is an <strong>applet</strong> (literally a "small application," nothing to do with Java applets) that must provide a simple -API under the <tt>acs-service-contract</tt> mechanism. This API allows +API under the <kbd>acs-service-contract</kbd> mechanism. This API allows the dotLRN core to generically dispatch calls to each dotLRN applet when certain events happen. @@ -44,8 +44,8 @@ it's very possible that some won't). To do so, the dotLRN core will use the New Portal Architecture of OpenACS 4. A dotLRN applet can simply add itself to the appropriate portal pages by providing an -<strong>NPA portlet</strong>. <i>Note that the architecture of this -portlet is dotLRN-independent!</i> The contents of the portlet may +<strong>NPA portlet</strong>. <em>Note that the architecture of this +portlet is dotLRN-independent!</em> The contents of the portlet may rely on dotLRN functionality, but the means by which the portlet is added to portal pages does not! @@ -80,7 +80,7 @@ Architecture. We want to strongly discourage developers from making this portlet package dependent on dotLRN functionality: portlets will be able to query parameter information from the NPA (such as the -<tt>package_id</tt>), independently of any dotLRN functionality. +<kbd>package_id</kbd>), independently of any dotLRN functionality. <p>