Detailed Caucus CML History Log

Charles Roth

This document is a detailed log of the history of feature changes in the standard Caucus CML code distribution.

i90 -- 26 April 2005

  1. New: Manager statistics wizard "Activity" report.
    Added a new type of report called "Activity".  For a single conference for a selected time period, shows each user's # of items read, responses read, and responses added, and total time in conference.

  2. Fix: prevent IE back-button bug from Center page.
    Pressing the Back button in IE 6 from the 1st visit to the Caucus Center page caused very strange things to happen (e.g. Center page with no Caucus buttons, etc.)

i89 -- 5 April 2005

  1. Add Manager control of toolbar buttons.
    The Caucus toolbar buttons (Help, Quit, etc.) may now be rearranged by the manager in an easy, visual way.  Buttons may be turned off and on, arbitrary text labels may be added, even new buttons can be quickly added.  (New buttons require short custom CML coding in a new 'localmenu.i' file to define their action when clicked.)

  2. Add automatic groups from conference membership lists.
    Organizers may choose to define an automatically-updated group that contains the current members of a conference.

  3. Fix: delete conference aliases with conferences.
    Previously, when a conference was deleted, its alias remained.  A newly created conference could get that (old) alias.

i88 -- 2 March 2005

  1. Add 'Tasks' (aka actions or to-do list) feature.
    The Task list is just that: a list of tasks, with sortable fields such as title, description, category, priority, etc.  Two-way links may be created between tasks and items or responses.

    Changed: main/indvresp.cml, indvrespf.cml, indv_task.i, macros.i, menu_default.i, menu_text.i, sql_create_tasks.i, startup.i, taskdel.cml, taskdelink.cml, taske.cml, taskedcat.cml, tasks.cml, taskx.cml, viewitem.cml.

  2. Show both "manage" and "customize" links under "You are..."

    Changed: main/youare.i.

  3. Fix: re-enable individual e-mail notification schedules.
    A previous upgrade to the email notification feature managed to disable individual email notifications.  This has been corrected.

    This change also fixes a problem that occurs when the organizer specifies a non-existent interface as the default interface for email notification.  Previously, following the link in the email caused a "file not found" error; now it goes to the default CC44 interface.

  4. Filter non-printing characters in uploaded filesafe files.
    Defined new macro %safename(), which translates non-printing characters, including blanks, into underscores.  Call this macro on the names of uploaded files in the filesafe.

    Changed: main/macros.i, safename.i.

i87 -- 28 Jan 2005

  1. Add auto-join feature for conferences.
    If the "autojoin" switch is set for a conference, anyone who can join that conference automatically becomes a member of that conference, the next time that they login to Caucus.  The conference is also added to their personal conference list.

    Organizers or managers can turn this switch on or off.  It defaults to off.  The switch also appears on the "create conference" page.

  2. Fix: make "Select Responses" window pop-up "Print" window even through pop-up blockers.
    Click on "Select" next to a response, and the "Select Responses" window appears.  Click on "Print", and a "printer-friendly" window appears containing the selected response(s). 

    Some pop-up blockers blocked the latter window.  The code has been rearranged to open the new window immediately on clicking "Print" (which is allowed by most pop-up blockers).

  3. Support for forth-coming "authentication method 3".
    Authentication method 3 uses a cookie created by a calling application, to provide seamless cross-login into Caucus.  Details of this feature are forthcoming in a later binary release.

  4. Fix: People button lists matching user even if only one match.
    Previously, if one typed part of a user name, and only one person matched, that person would "pop-up" immediately.  But that ran afoul of pop-up blockers.

    Changed: main/peoplef.cml.

  5. Fix: "Force join" option shows correct count of members.
    Previously the count included members that were no longer permitted access, or users that no longer existed.

    Changed: main/members.cml, forcejoin.i, memberlist.i (new).

  6. Fix: "Force join" option adds conference to personal conference list.
    Previously, "force join" only added a conference to the members' personal conference lists if the conference was accessible by the 'caucus' userid.  Now it works in all cases.

    Changed: main/add2persconf.i

  7. Item & response "Delete" links use javascript to activate.
    IE can be used as a mini-spider, traversing links and saving pages to the local PC.  Unfortunately, when used this way inside Caucus, IE effectively "clicks on" the Delete links on the item/response display!  By making these links activate through javascript, it prevents IE from deleting the items and responses.

    Changed: main/viewitem.cml

  8. Organizers may show & edit deleted responses.
    "Customize Users" has a new checkbox switch, that allows (only) organizers to (see and) edit deleted responses.  This is only allowed for organizers, since the ownership of a response disappears when it is deleted.  The organizer may set the owner userid of the "replaced" response.

    Changed: main/viewitem.cml, controluf.cml, control_users.cml, customuf.cml, custom_users.cml.

  9. E-mail notifier daemon defaults to "on".
    The e-mail notifier "daemon" is the process, launched via cron, that actually sends out email notifications.  This used to default to "off", now it defaults to "on".

    Changed: main/siteswitch.i, defaults.i; ENOTIFY44/main/enotify.cml

i86 -- 25 Jan 2005

  1. Add Symbols button to richtext editor.
    The richtext editor now has a "sigma" button which causes a DHTML "window" to appear, which allows adding math symbols to the current item or response -- just like the plaintext editor.

  2. Support richtext editor on Assignments page.
    Users who selected the richtext editor were not able to edit course conference Assignments.

  3. Fix: apply CSS styles to IFS pages.
    Standalone "IFS" pages, based on an interface_storage conference item, did not (previously) include the CSS stylesheet.  Thus they looked quite different on the IFS page than they did in the IFS item.

  4. Fix: make "Produce User Reports" filenames unique.
    If more than one person runs a user report at the same time, the output files could clobber each other.  Fix by making each output file depend on the process id.

  5. Add 2-D scrolling with fixed sidebar/header to course status (gradebook) page.
    The course conference "status" page has been significantly revamped, and provides a spreadsheet-like scrollable display with a fixed sidebar (list of students) and header (list of assignments/entries).  This version also adds a checkbox for displaying scores as integers or as decimal numbers with two decimal places.

i85 -- 9 Jan 2005

  1. "Manage Users by Date" now displays date last on properly.
    In the 4.6 release, only the months appeared.

  2. "Attach file" pop-up window simplified.
    The file name field has (re)appeared, and the first page now contains all the file type choices, thus saving a step.

  3. Fix problems with math symbol pop-up for Mozilla.
    The math symbol "pop-up" uses a new DHTML "pop over" javascript in ~/public_html/popover.js that cleans up problems with Mozilla where only part of the math symbol table appeared.

  4. Finish implementing "site-wide" email notifications.
    Release i81 included a manager user interface for "site-wide" email notifications -- email that would go out to individual users if any of their conferences had new material.  The actual implemention of this (actually sending the emails) was only finished as of i85.

  5. Modify help text for "Customize Users" to describe 4.68c "*smith" case.
    See 4.68c wildcard match description.

  6. Conference home page "list items since" option handles any date format.
    Previously it only understood "1-Dec-2004" and the like.

i84 -- 13 Dec 2004
Some features in i84 require 4.68a.

  1. Email participation emails now include attachments to responses.
    When emails go out (from Caucus) via the email participation feature, they include any and all files attached to the items and responses, as attachments to the email(s).

  2. Add %photo() macro.
    Clickable image of a person, that pops-up their personal info window.

  3. Trim out <base> tags entered by users.
    Add <base> tags to the list of HTML tags automatically filtered out by Caucus from user-entered text.  (An errant base tag can mess up the actions of the rest of a Caucus-generated page.)

i83 -- 10 Dec 2004
Rev i83 resumes the ongoing process of new Caucus development, and thus may have things added to this rev over time. 

  1. Newly registered users are automatically added to group interface_registered_XXX.
    Whenever a new userid is created (either by self-registration, by the manager, or by the special URL registration method), the userid is automatically appended to this group file (where XXX is the interface name).

  2. Self-registration page can use all macros.
    A customized registration page might have macro calls in some of the CML text.  Previously only a handful of macros were recognized by the registration page.  Now all of them are.

  3. Improved handling of "symbols" button.
    Added new popOver() javascript function (in public_html/popover.js) to greatly improve the handling and reliability of the "pop over" DHTML text that displays when clicking on the "Symbols" button in the plaintext response editor.

  4. Use CSS for "announcements" and email-everyone "list of recipients" pop-up page.
    Bug fix: several pop-up pages did not previously use the proper CSS stylesheets.

  5. Change "email to all" feature to address emails to "undisclosed recipients".
    Managers or organizers may "email to all" (people, conference members, group members, etc.).  The "To:" address on the received email appeared random, even though the email actually did go to everyone it should go to.  This was potentially confusing to the receipient(s).  Now the "To:" field should appear as empty, or as "undisclosed recipients", or something similar.

  6. Fix CSNAP to not complain about non-ambiguous conference names.
    Bug fix: CSNAP previously complained about conference names that were similar to other names, even if the name entered by the user exactly matched a conference name.

i82 -- 24 Nov 2004
This is the "minor patch" upgrade to i81.

  1. Extend "on now" options to allow "AIM" field.
    (Note: this info is primarily for sysadmins who are customizing the display of the "on now" fields.)  The %onnow() macro also takes an "aim" option, which displays the user info "aim" field, processed by the "%aim()" macro.  In addition, the definition of the default fields has been moved to a new macro %onnow_options()... which makes the list of options much easier to extend, by simply redefining %onnow_options() in a localmacros.i file.

  2. Fix bug: userids containing hyphens can't get grade scores.
    In a "course" conference, changing a grade for a userid containing a hyphen caused a javascript error, because the hyphen was interpreted as a subtract operator.  Fixed by using associative array syntax (object['name-of-sub-object']).

  3. Fix bug: adding user info fields ("modify registration interface") may fail or cause duplicates.

i81 -- 12 Nov 2004
Version i81 is the base CML code for the official release of Caucus 4.6, code-named "Sirius".

  1. URLs typed in the richtext editor are now automatically "blued" in all browsers (not just IE), and automatically open a new window when appropriate.
    If the target URL is potentially viewable (HTML file, Word doc, image file, etc), Caucus opens a new window, slightly smaller than the parent window.  See the New_Win_For parameter in the Caucus configuration file SWEB/swebd.conf.  This change makes the behaviour of the richtext editor match, as closely as possible, the plaintext editor.

  2. Fix "Create+View" richtext item so that the item is viewed.

  3. Add user-settable switch to show Caucus toolbar at the bottom of some pages.
    The default for most pages is to not show the toolbar at the bottom of a page, which is a change from older versions.  Some users prefer to have the toolbar at the bottom of long pages, such as the item page or the conference home page.

  4. Fixed bugs with Copy/Move on "Select Responses" pop-up.
    The "Go" button next to Copy/Move failed if the user was not an organizer.

  5. Fixed bug with viewing forgotten items from conference home page.
    Selecting "forgotten" items from the pull-down on the conference home page showed "no items" even if the user had forgotten some.

  6. Automatically "blued" URLs now work in %image(), %url() macros.
    The richtext editor automatically converts URLs into the <A HREF...> tag ("blued URL") format.  This messes up the old %image() and %url() macros.  Added %striplink(), which converts the URL back into a plaintext URL, and call it automatically inside %image() and %url().

  7. Floating images no longer "float" down into subsequent responses.
    Added <br clear=all> at the end of all responses.

  8. "Who has seen this item" no longer slows down on deleted users.
    In some circumstances, users may be deleted but still appear in a conference membership list.  In those cases, the deleted users really slowed down the display of the "who has seen this item" page.  This has been corrected.

i80 -- 6 Oct 2004
Version i80 is the base CML code for the beta-test release of Caucus 4.6, code-named "Sirius". Many things have been reworked in this version.

  1. CSS integration, font control, new layouts for conference home page and item page.
    Caucus finally uses CSS for the most common layout elements, although there is clearly more room for improvement.  See Caucus 4.6 and CSS for technical details.

    The most important things to note, from the user side, are:

    1. Caucus defaults to a "smaller" (80% of the browser's default) Arial font, which overall looks much more professional and readable.

    2. Individual users can control the font choice or size, either through their browser setting, or through their Caucus profile.

    3. The layout for the conference home page, especially the list of items, is much more readable.

    4. The layout of the item page has also improved.  In particular, each response has its own set of links for Delete, Edit, Mark New, and Select.  Clicking on Select (or its checkbox) automatically pops up the page-formerly-known-as-Act-On, which has also been redesigned to be less confusing.

  2. "Bozo" Filter.
    With some trepidation, we've added the infamous "bozo filter".  A site manager may turn it off, and individual conference organizers may also turn it off for their conference(s).  Otherwise, users may (by clicking on their name and scrolling down to section III, settings) specify a list of userids whose responses will not be displayed.  More precisely, for such responses, Caucus displays the author's name and date, the word Filtered, and skips the text of the item or response.

  3. Remove Netscape 4.7 conflicts.
    Yes, believe it or not, some people are still using Netscape 4.  Caucus detects this and turns off DHTML features, such as the "Symbols" button on the response add/edit box.

  4. Pop-up an error message if SQL connect failed.
    Several Caucus add-on modules require a MySQL connection, the parameters for which are set in the swebd.conf configuration file.  If a page requires SQL, but it is not connected, the page pops-up an error message.

  5. Show item titles in "compass bar" by default.
    The default used to be "off", but switchable.  Now it defaults "on".

  6. Organizer may set default sort order for item lists.
    The organizer may choose how to sort the list of items on the conference home page.  (This is overridden by any choices made by individual users.)

  7. Organizers have an option to "not preserve original date" when copying responses.
    In this case, the date when the text was copied becomes the date of the item or response.

  8. Added interface to any local virus-checker on the server.
    If the server has a virus checker, the CML file CC44/main/virus_check.i can be modified to call it -- in which case all files uploaded by users into Caucus are scanned for viruses.

  9. Added "delete response range" to edit-item page.
    An organizer has an extra "delete response range" option on the "edit an item" page, which they can use to delete a numbered range of responses.

    Note also the the "selected responses" pop-up page also has a new "Set all" option, which is another way of deleting a large number of responses simultaneously.

  10. Automatically create course conference tables.
    The MySQL tables needed for "course conferences" are now automatically created as needed.  See, for example, sql_create_assignments.i; this establishes a new precendent for table creation.

  11. Add 'conf' option to %onnow() macro.
    The "who is on now" macro may be restricted to only list people in the current conference.

i79 -- 27 Sept 2004

  1. Fix: don't add ur_suspend field to old interfaces.
    If an interface doesn't have any 4.4-style registration fields, don't automatically add the new "suspend" field.  (Symptom: clicking on one's name shows only the suspend & favorite interface fields.)

  2. Fix: correct slow deletion of userid by manager.
    Caused by error in call to delete_userid.i when authorization method cannot be found (e.g. deleting userid that doesn't exist).

i78 -- 2 Sept 2004

  1. Feature: organizer can mark items "hidden".
    In a conference, from the "mark individual items" page, an organizer can mark items as "hidden" (or "un-hide" already hidden items).

    Hidden items never appear in any lists of items, except on the "mark individual" page, and then only for organizers.  Hiding an item is roughly equivalent to "forgetting" an item, except that it applies to everyone in a conference.

  2. Fix user statistics wizard problem, shows previous user.
    From a conference, customize, user statistics wizard. Select date range, user, "by Day". Then select another user who has not accessed the the conference during the date range. The previous user's results will appear.

  3. Fix course status (gradebook) "too many Save Changes causes page to collapse" bug.
    Clicking "Save Changes" in a course conference status (gradebook) page sometimes caused the page to "collapse" (all columns except final ones disappear until next login).  Caused by too many unclosed SQL queries.

  4. Feature: new richtext editor!
    This is a very exciting addition -- a very small, fast, and easy to use "richtext" editor, that provides "WYSWYG" style editing, and generates HTML output.  This editor can be used instead of the "textbox" editor that appears when adding or editing items or responses.

    This version replaces the previous experimental editors that came with some distributions of Caucus.  It is considered fully operational, and works with IE 5.5+, Netscape 7+, and Mozilla 1.4+.

  5. Feature: site-wide email notifications.
    A site manager may now schedule "site-wide" email notifications.  Essentially, this means that, for a given interface, the manager may set a schedule for everyone who uses that interface as their primary or "favorite" interface.  If such users have anything new in their personal conference list, they will receive an email notification according to that schedule.

    The text of the notification may be set by the organizer.  Individuals may change their "favorite interface" by clicking on their name and changing the appropriate field.  Individuals may also choose to "suspend" such site-wide email notifications in the same manner.

  6. Feature: extend center page "type a conference name" matches.
    When a user types a (part of a) conference name in the input box on the Center page, Caucus will match it against any part of a conference name -- not just an initial substring of the name.

i77 -- 17 August 2004

  1. Raise max length of filesafe file description field to 2000 chars.

  2. Feature: organizer can define date-range for adding responses to an item.
    When creating or editing an item, an organizer may choose a date-range "window" during which regular users are allowed to add a response.  Outside that range, only organizer(s) may add responses.  All other users will see the date of the opening or closing of that window, as appropriate.

  3. Feature: email participants are identified by "full name" alias.
    When email participants' email addresses are specified, the organizer may add a space followed by an optional "full name alias" on to the end of each line.  When an item or response is added by an email participant, this alias will be used as their name, instead of their email address.  (Added to minimize posting email addresses in responses, which, especially when a CSNAP'd conference is posted on the web, might be scanned by spammers.  Sigh.)

i76 -- 11 July 2004

  1. Strip HTML tags from Search results.
    Items or responses that were entered with a "rich text" editor contain raw HTML.  This produced confusing and hard-to-read results when searched.  Now the HTML tags are stripped out, and the "hits" are marked in boldface.

  2. Allow manager to turn off Help or Quit buttons.
    The Manager "modify interface look and feel" page now includes checkboxes for turning the Help or Quit buttons on or off.

  3. Add option to display responses to an item in "reverse" order.
    An organizer or item author may edit an item and choose "Reverse" display, meaning the last response displays first, and so on.  Useful for blog-like records (as opposed to ordinary Caucus conversation).  Also applies to CSNAP'd conferences.

  4. E-mail participation: import attached files, handle HTML text.
    People using the "e-mail participation" feature of Caucus can now attach files to their emailed responses.  Images will be displayed directly in the responses; other file types will appear as simple links.

    If an email contains HTML text, it will be treated as an HTML response, and thus preserve all of the formatting.

    In addition to specifying email participants, a conference organizer may now also specify email "senders" -- email addresses that can send text and files "into" a conference, but who do not receive anything back.

    When mail is sent to Caucus through this feature, it must have a "Subject:" line specified in the following format:

         ::Caucus: conference_name [item]
    where the conference_name is specified with underscores instead of blanks.  ("Caucus" may be upper, lower, or mixed case.)  If no item number is specified, the email will start a new item (if allowed by the organizer).  Otherwise the email "posts" to the specified item.

    Optional text (such as "Re:") may preceed the "::Caucus:" part of the subject, and is ignored.  The correct subject line is automatically generated when a person replies to an email participation message, but needs to be specified manually for "senders" email.

    A separate unix userid must be dedicated to handling the Caucus emails; see the Caucus installation instructions for more details.  Thus the emails are sent to (and received) from an address like, where caumail is this dedicated unix userid.

  5. Allow quotes in course conference assignment titles.
    "Escape" single and double quotes before entering them into the database, or displaying in editable fields.

  6. Fix permissions problem in restored-from-archive conferences.
    When a conference is created from an archive (i.e. "restoring" a conference), the permissions were not always correct -- especially when restoring a regular conference as a "course" conference.  This has been corrected by making sure that the "restorer" always gets organizer privs in the restored conference.

  7. Speed up "assignments" page.
    Ditch the %plainOfHTML() macro (used to filter HTML tags out of assignment text) in favor of the binary-level $unhtml() function, for a tremendous speed-up of the display of the assignments page.

i75 -- 7 June 2004

  1. Fix bug in filesafe section handling
    Given two filesafes ABC and ABCDEF, all of the sections in ABCDEF will also appear in the display of filesafe ABC (even though they shouldn't).  Ditto for deleting filesafes.

  2. Course conference listing, instructor shown is 1st person in "Instructor" column in "conference permissions".
    New feature. Used to be primary organizer. Uses new %instructors() macro.

  3. Fix course conference bug, instructors can change conference home page options.

  4. Course conference assignments and course status (gradebook), now accept dates of the form "mm-dd-yy[yy]".
    New feature. Distinguishes between yyyy-mm-dd and mm-dd-yyyy.

  5. %chattool(room type=embed) now warns if organizer has disabled applets.
    Previously, the chat tool simply (mysteriously) did not appear if embedded applets were not allowed.

  6. Fix bug in "empty" display of course conference assignment listing.
    On the course conference assignment page, the link to the assignment displays as a short fragment of the assignment text. If the assignment starts with a long HTML tag, the display may be empty.

i74 -- 1 June 2004

  1. Old-style logins sometimes got incorrect access permissions
    Old-style (non-cookie) based logins might get, for example, readonly access to an "include" conference.  Fixed by adding the new $co_priv() call to caucus.cml.

  2. Add new %rtrim() macro.

  3. Remove "blued underscores" at the end of the %chattool() link.
    Calls %rtrim() inside link text.

i73 -- 26 May 2004

  1. "Force join" adds conference to personal conference lists.
    A new site-wide setting (manager, look & feel, edit settings) makes the conference organizer "force join" add the conference to the users' personal conference list. (The default is on, may be turned off by manager.)

  2. Fix intermittent disappearance of conferences from %courselist().
    Sometimes course conferences would appear and disappear from the course list, depending on whether they had been included in a $cl_list() call. Now %courselist() ensures that $cl_list() gets called on all included conferences.

  3. Confirmation no longer required when joining conferences.
    In previous versions, when a user clicks on a conference for the first time, they are prompted for confirmation that they really want to join the conference.  This was controlled by a manager "setting", which defaulted on but could be turned off. The new default is "off".

i72 -- 11 May 2004

  1. Disable course conferences if MySQL not available.
    Define %supports_class() macro to see if class (course) conferences are supported (i.e. if MySQL accessible and assignments table exists.)  Check it in when displaying toolbar, and when creating new conferences.

  2. Restrict membership lists to members still allowed.
    A person can join a conference and become a member, but subsequently be "disallowed" from the conference. As of this version, that person will no longer show up in the membership list (from the People icon) or in an "email all members of the conference" list.  They may appear in other instances (like building groups or conference lists from membership lists) where it's still appropriate to know that the person was a member.

  3. Show "expandable" lists of groups.
    From the "manager / users / users groups" page, show sets of groups with the same prefix (first word in a group name) as a single "expandable" link. Clicking on the link shows all groups with that prefix.