$Id: CHANGELOG.txt,v 1.114 2008/12/02 03:35:10 dww Exp $

-----------
6.x-1.0-rc2
-----------
Bugs fixed since 6.x-1.0-rc1:
= #336255 by KarenS and dww: Fixed numerous bugs in usage of DateAPI
  that were breaking all time-based signup functionality for datestamp
  fields and causing problems for certain configurations of date or
  datetime fields depending on the timezone handling.  Using
  6.x-2.0-rc5 of DateAPI and the CCK Date field, the one configuration
  that doesn't fully work is a datestamp field that has no timezone
  handling at all.  With that configuration, you must use the latest
  Date code from the DRUPAL-6--2 branch (check the top of your copy of
  date/date.module and make sure the revision is at least
  "1.61.2.4.2.34" (2008-11-28) or newer).
= #338850 by dww: Fixed critical SQL bug ("Not unique table/alias: 'e'")
  on the signup administration page (admin/content/signup) for sites
  that have more than one event.module node type that is signup-enabled.
= #335190 by bkat and dww: Fixed bug where if you had a node enabled
  for signups and edited it to disable signups, the node would remain
  signup enabled.  The bug was introduced in 5.x-2.6 by #328822.
= #336442 by dww: Fixed bugs with the views filters "Signup:
  Enabled/Disabled" and "Signup: Confirmation: Enabled/Disabled".
= #336461 by dww: The "Signup: Reminder: Enabled/Disabled" views
  filter was broken since it was using the wrong filter handler.
= #336450 by dww: Fixed the UI for signup's Views filters.
= #336610 by dww: Fixed bug introduced in #329668 where node types that
  have an underscore in their name had broken links in the warning
  messages about CCK date fields being misconfigured.  Those warnings
  also didn't appear at all in some cases.  The bug was caused by
  core's bizarre handling of node_type vs. node-type in URLs.
= #340377 by dww: Fixed bug where the default value in the database
  for how many days in advance to send reminder emails did not match
  what the rest of the code was written to expect.  Reminders would
  not be sent until the admin/settings/signup page was saved.

Other changes since 6.x-1.0-rc1:
= #335563 by dww: Added support to control the relative ordering of
  the signup information embedded on nodes.  If the content.module
  (CCK) is enabled, "Signup information" is now exposed to the field
  management page (where there is a drag-and-drop interface to reorder
  everything) at admin/content/node-type/[node-type-name]/fields.  If
  CCK is disabled, there is a variable to manually control the weight.
  The variable is called "signup_info_node_weight_[node_type]" and can
  be defined in the $conf array in settings.php.
= #336129 by dww: Moved the signup node type settings out of the
  "Workflow" fieldset into a separate "Signup settings" fieldset.
= #341331 by dww: Improved database performance during cron runs by
  using INNER JOIN instead of LEFT JOIN for finding nodes of a given
  type that need to be auto-closed and/or have reminder emails sent.


-----------
6.x-1.0-rc1
-----------
Changes since 6.x-1.0-beta1:
= #330828 by dww: Split module code out into separate include files.


-------------
6.x-1.0-beta1
-------------
Contains all the features and bug fixes up to and including version
5.x-2.6.  Changes since 5.x-2.6:
= #222217 by dww: Initial port to the Druapl 6 core API.
  Related issues: #330838, #330840, #332968, #333264.
= #330820 by dww and duellj: Ported all views support to the views2 API.
  This changes how the 'View to embed for the signup user list' setting
  works, so any sites that are using a custom view for this will have to
  revisit the signup settings page and select a new value under the
  advanced settings fieldset.  signup_update_6000() removes the
  deprecated variables from the database.
= #330821 by dww: Fixed problems with the D6 CCK Date field support.
= #330824 by dww: Ported the Panels integration to the D6 Panels API.
= #330829 by dww: Split theme functions out into separate include files.
= #333185 by dww: Removed deprecated signup_build_signup_data() function.


-------
5.x-2.6
-------
New features since 5.x-2.5:
= #86462 by KarenS, dww, duellj, shane_jordan, and stBorchert: Added
  support to use CCK date fields to control time-based functionality
  (auto-closing signups and reminder emails).  Currently works with
  date.module versions 5.x-1.* and 5.x-2.*.  Related issues:
  #328181, #328647, #328756, #329668, #329708, #330121, and #330821.
= #321531 by stBorchert and dww: Exposed the signup form as a panel pane.
= #78707 by dww: Added a theme_signup_node_output_header() function to
  customize HTML at the top of the signup-related output on nodes.
  The default implementation adds a 'signup' anchor.
= #333257 by dww: Improved the UI at the node/N/signups administration
  page to use a column of checkboxes to cancel multiple signups at once.
= #332443 by TheOnlyHarry and dww: theme_signup_user_form() is now
  invoked with the $node object as context, so you can conditionally
  add custom signup fields depending on the node or node type.

Bugs fixed since 5.x-2.5:
= #327417 by dww: Fixed bug where reminder emails always used
  '[Untimed]' for the %time token with event 5.x-2.*.
= #327417 by dww: Fixed bugs regarding timezones and other date logic
  for auto-close and reminder emails with event 5.x-2.*.  Also cleaned
  up the same date logic for the event 5.x-1.* support.
= #329708 by dww: Fixed bug where reminder emails could be sent for
  time-based content that already started.  This would be particularly
  prominent if a site has content types that use CCK date fields which
  are signup enabled, then upgraded to the latest version.  But, the
  bug could have potentially hit sites using the Event module, too.
= #328637 by dww: Fixed bug where error messages generated while
  validating an anonymous user's email address weren't translatable.
= #290734 by dww: Fixed a bug from the previous patch where the
  %username token for anonymous users wasn't actually being replaced
  inside theme_signup_email_token_anonymous_username().
= #330281 by dww: Fixed broken link to the 'Signups' tab in the help
  text for the signup settings on the node form when creating new nodes.
= Fixed the help text on the signup broadcast page to use the
  human-readable name of the content type, not the internal name.
= #332968 by dww: Renamed _signup_admin_form to signup_node_settings_form
  to be less confusing, and fixed PHP warnings from not knowing the node
  type on the global signup settings configuration page.  Also, all help
  text now consistently uses the human-readable node type name.
= #334405 by dww: Fixed minor UI bug where the "Sign up another user"
  fieldset on the node/N/signups administrative tab was expanded or
  collapsed based on the setting to control the signup fieldset when
  viewing nodes.  Now, the fieldset is always open on the admin tab.
= #330840 by dww: Fixed a PHP warning when sending a copy of a signup
  broadcast to yourself from _signup_get_email_tokens() inspecting an
  element in the $signup object that doesn't always exist.

Other changes since 5.x-2.5:
= #327726 by dww: Reorganized the directory layout of the code.
= #328647 by dww: Removed all mention of 'event' in the UI and code
  unless it refers specifically to the event.module.  User-facing text
  now uses the human-readable node type name, instead.
= #328840 by dww: Renamed the default email tokens to use less
  ambiguous names and to not refer to 'event' at all (#328647).
= #333259 by dww: Renamed 'signup_admin_node_form' to
  'signup_node_admin_summary_form' to help avoid confusion in the
  code.  This does mean that sites which implemented their own theme
  function for this form will have to modify the name of their
  override function.
= #327726: Removed dead 'contrib' code. signup_ecommerce is already
  moved to another project and is referenced on the signup project
  page.  signup_conflict hasn't been touched since 4.7.x (#326110).
  If anyone wants it, they can checkout DRUPAL-4-7 and make a new
  project for it.


-----------
5.x-2.5
-----------
Potential information disclosure bugs fixed with this release:
= #219680 by dww: Fixed bug where the email address of users who signup
  was being sent in the notification emails to event owners, which is an
  inadvertent disclosure of personal information.  Now, only a link to
  the user's profile is included.
= #310307 by dww: Added a filter for published nodes to the default
  views for the 'Signups' tab on user profile pages.

New features since 5.x-2.4:
= #243035 by dww, deviantintegral and stBorchert: Added a default view
  for the users signed up for a node ('signup_user_list'), a theme
  function for the hard-coded listing (theme_signup_user_list()), a
  setting to control what user listing appears under the signup form
  (the old hard-coded listing, an embedded view, or nothing at all),
  and some jQuery to hide/reveal these advanced settings as needed.
= #285626 by deviantintegral and dww: Added optional support for using
  token.module tokens in the various email message templates.
= #265222 by dww: Added support for an "%eventurl" token for all e-mail
  messages which contains the full URL to the node in question.
= #316276 by deviantintegral: Added an option to hide the signup form.
= #275298 by dww: Made the table of signup details at node/N/signups
  sortable by username or signup time.
= #310677 by stBorchert and dww: Added the ability for the sender of a
  broadcast message to send themselves a copy.
= #132142 by dww: Added a setting to control which site-wide date
  format string to use for rendering dates in the administrative UI
  and in the email messages.
= #273072 by dww: Added a theme function for the node/N/signups signup
  administration tab (theme_signup_node_admin_page()), and changed the
  default appearance of that page to be more visually consistent.
= #47913 by dww and stBorchert: Added significantly more themeability
  for what appears on signup-enabled nodes and for the the signup
  administration overview page.

Bug fixes since 5.x-2.4:
= #321653 by shane_jordan: Fixed bug where if a signup administrator
  canceled an anonymous signup on a given node, all of that anonymous
  user's signups were also canceled.  This bug was from the original
  implementation of anonymous signup support (#68497).
= #233512 by dww and tcocca: Added code to cancel all signups of users
  that are deleted from the site.
= #259301 by dww: Fixed bug where the code assumes you want additional
  fields in your signup form. Signup now handles an empty return value
  from theme_signup_user_form().
= #249155 by joshk: Added the $user object as another argument when
  invoking hook_signup_sign_up().
= #224162 by dww: Fixed bug where all broadcasts were sent as the site
  owner.
= #247618 by selmanj and dww: Fixed bug where "... or register ..." was
  printed even on sites that have user registration disabled.
= #321463 by dww: Fixed UI bug where the 'Please login or register to
  signup' help text was printed even if regular authenticated users
  couldn't signup.
= #243051 by dww: Fixed bugs and simplified logic for deciding if the
  "Signup settings" fieldset should be added to node forms or not.
= #219678 by dww: Changed email notification to event owner to omit
  "Date/Time: [Untimed]" if the event has no time.
= #290740 by deviantintegral and dww: If 'site_mail' is undefined, 
  use the 'sendmail_from' PHP ini setting as the fall-back value for
  the From address in e-mails sent by this module.
= #278739 by dww: Fixed incorrect start date on signup administration
  page (admin/content/signup) when using event 5.x-2.*.
= #213239 by dww: Fixed UI bug where event-specific features (e.g.
  reminder email) were shown on nodes that don't have a start time.
= #247573 by dww: Fixed UI bug where the form for administrators to
  signup other users (#174715) was shown even if signups were closed
  on that node.
= #293157 by dww: Fixed bug where the '!login' placeholder was not
  expanded in the help text for the e-mail field when anonymous users
  can signup. This bug was introduced in version 5.x-2.4 via #174715.
= #290734 by dww: Cleaned up, unified, and fixed handling of the
  hard-coded signup email tokens.  In particular, %username is now
  properly handled for anonymous signups by means of a new theme
  function: theme_signup_email_token_anonymous_username().
= #137609 by dww and stBorchert: Added a lot more themeability for how
  the site-specific custom signup data is displayed for the signed up
  user, the signup administrator, and in the email messages.  This also
  fixes a bug (#178441) where the labels for the custom fields were not
  included in the email messages.

New theme functions (see the comments in the code for more info):
= #47913: theme_signup_current_signup()
= #47913: theme_signup_signups_closed()
= #47913: theme_signup_anonymous_user_login_text()
= #47913: theme_signup_admin_page()
= #137609: theme_signup_custom_data()
= #137609: theme_signup_custom_data_email()
= #137609: theme_signup_custom_data_table()
= #137609: theme_signup_custom_data_rows()
= #137609: theme_signup_email_token_custom_data()
= #290734: theme_signup_email_token_anonymous_username()
= #243035: theme_signup_user_list()
= #273072: theme_signup_node_admin_page()
= #285626: theme_signup_token_help()
= #310677: theme_signup_broadcast_sender_copy()

Other changes since 5.x-2.4:
= Removed the deprecated (4.7.x) signup_ecommerce code since it now
  lives in a new project: http://drupal.org/project/signup_ecommerce
= #309668 by slybud: Added a French (fr) translation.
= #289326 by starbow and dww: Added two new functions to the event
  backend API for knowing if a node type or a node has a start time.
= #322528: Simplified the description of the signup_available_signups view.


-----------
5.x-2.4
-----------
Bug fixes since 5.x-2.3:
= #193068 by bkat and dww: Fixed fatal bug during cron.php with event
  5.x-2.* installed (event_include_files() was missing from a few places).
= Fixed signup_install() not to force tables on MySQL to be MyISAM.
= #199383 by deviantintegral and dww: Fixed bug that could cause signup
  to invoke node_load() with invalid parameters on the node add form.
= #79331: Fixed inconsistent UI: don't capitalize individual words
  (for example, the UI now uses 'Current signups' and 'Cancel signups').
= #107136: Added $uid parameter to _signup_cancel hook (so it can be
  useful for something) and converted to use module_invoke_all().
= #202913 by westwesterson: Fixed ambiguous SQL query on the
  admin/content/signup page when using certain node access modules.
= #212790 by dww: Fixed an SQL 'GROUP BY' bug on the admin/content/signup
  page when PgSQL and the 5.x-1.* series of event.module are used.

New features since 5.x-2.3:
= #190553 by dww: Added a global setting to move the signup form from
  a fieldset on the node to a separate "Sign up" tab.  This feature
  was sponsored by esquaredworkshops.com.
= #195276 by jrbeeman and dww: Enhanced per-node-type signup settings
  to allow admins to completely disable signups on certain node types.
  There are now 3 signup options on the content type settings page:
  - "Disabled": completely prevents signups, even users with
     'administer all signups' cannot signup-enable nodes of this type.
  - "Allowed (off by default)": admins get a "Signup settings"
     fieldset, but signups are disabled by default.
  - "Enabled (on by default)": Signups are enabled by default, but
     admins can disable signups on specific nodes of this type.
= #174715 by dww: Signup administrators can now signup other users.
= #145749 by schittli: Added German (de) translation.


-----------
5.x-2.3
-----------
Bug fixes since 5.x-2.2:
= #169372 and #171363: Fixed bugs with redeclaring functions caused by
  using include() instead of include_once().
= #179540 by dragonwize and dww: Restored the login/register links for
  anonymous users when viewing a signup-enabled node.
= #181627 by stBorchert and dww: Removed an inappropriate WHERE clause
  in the signup UID views argument handler that restricted the query to
  nodes where signups where open. That should be handled via a filter.
= #183417 by dww: Switched to a better method for conditionally
  including views support code. This no longer uses signup_init(),
  which wasn't necessary and made this module listed as incompatible
  with aggressive caching for no good reason.

New features since 5.x-2.2:
= #137911 by dww: Added signup_no_views.inc, moved all hard-coded
  UI functionality there, and provided a default view to list the
  users's current signups (both at their profile and via a block).
  This allows more flexibility for sites using views, since the
  default views for these things can be customized without conflicting
  with the non-views UI.
= #48267 by dww: Added a default view of available signups (events
  without a reply) which is a subtab at user/%uid/signups/available
  and also provided as a block.
= #180154 by KarenS and dww: Added a views filter for if the current
  user is signed up.
= #178021 by stBorchert: Added a new "cancel own signups" permission.
  NOTE: After updating the module and running update.php, all roles
  that previously had the "sign up for content" permission will have
  "cancel own signups", too.
= #180233 by stenjo: Added a Norwegian Bokmal translation.


-----------
5.x-2.2
-----------
Bug fixes since 5.x-2.1:
= #163257 by dww: Anonymous users could cancel all anonymous signups
  once the signup limit is reached or signups are otherwise closed.
  This bug was introduced in version 5.x-2.1.
= #160862 by adrinux and dww: Fixed paging on signup administration form
  (admin/content/signup) due to missing count query.
= #142402 by cpisto: Fixed SQL bug on PgSQL when event.module is enabled.
= #147546 by stBorchert: Removed call to undefined _event_date() when
  using signup broadcast if event.module is not installed.
= #158688 by m3avrck: fixed JS to work with aggregator.
= Code-style fixes (thanks to the coder.module).

New features since 5.x-2.1:
= #154580 by killes and dww: Refactored code to support different
  event-related backend modules. Both event 5.x-1.x and event 5.x-2.x
  are supported, and adding date.module support will now be easy.


-------
5.x-2.1
-------
There are 2 major changes since 5.x-2.0: a long-awaited new feature,
and a critical bug fix for anonymous users:
= #32482: Adding support for signup limits per node:
  - New field on site-wide signup defaults and per-node edit form to
    set or modify the signup limit.
  - Signups auto-close when the limit is reached.
  - Users can now cancel their own signup when signups are closed, and
    if it's not an event-enabled node, or the event hasn't started
    yet, signups automatically re-open.
  - Cleanup of the node/N/signups UI.
  - Even bigger cleanup of admin/content/signups UI.
  - Views support updated to view and filter by signup limit.
= #138401: Fixed a fatal PHP error on certain pages for anonymous
  users when caching is enabled.


-------
5.x-2.0
-------
Initial official release of the 5.x-2.* new feature series.
Enhancements since 5.x-1.0:
= #106808: Initial views integration. At this time, all the fields
  from all signup-related database tables are exported, and there are
  a handful of filters, sorts, and arguments. There are no default
  views yet.
= #106891: Signup broadcast functionality -- sufficiently privileged
  users now have the ability to send an email directly to all the
  users who signed up for a given node on the site by using the
  "signup-broadcast" tab.
= #79332: Cleaned up the user interface for the signup administration
  overview page. It used to be misusing tabs as a way to filter what
  signup status (open, closed, or all) to view. Now there is a
  drop-down selector where the administrator can choose what signup
  status to filter the page with.
= #134609: Added an advanced setting to control if the signup form is
  collapsed or expanded by default.


-------
5.x-1.0
-------
The first official, stable release of the signup.module that is
compatible with the 5.x core API. This release includes all of the bug
fixes mentioned in the 4.7.x-1.1 release, so please see those release
notes for more details. In particular, 5.x-1.0 includes the same
database update from 4.7.x-1.1 that renames the permissions defined by
the signup.module. Sites upgrading to 5.x-1.0 directly from 4.7.x-1.0
should therefore be sure to run update.php.

In addition to the changes required to function properly with the 5.x
version of Drupal core, the 5.x-1.0 release includes the following changes:
= #49007: The fix for all the UI bugs and weird behavior about
  enabling and disabling signups per-node-type and per-node is
  enhanced in the 5.x-1.0 release by including singup.js to implement
  some additional UI enhancements when JavaScript is enabled. This
  depends on the jQuery support that is only included in 5.x core. On
  JS-enabled browsers, when users with signup administrator permission
  are toggling if signups are enabled or not, the other signup
  settings will be automatically hidden when signups are disabled.
= #118648 by Darren Oh: Send reminders after signups are closed.
= #128287: add hook_uninstall()
= Use 'access administration pages' not 'administer site configuration'
  permission to decide what the signup settings menu item should be called.


---------
4.7.x-1.1
---------
After many months of unfortunate neglect, the singup.module has
recently gotten a round of major attention and improvements.  Mostly,
the changes below are bug fixes, but in a few small cases, some new
functionality was added, as well. This release includes a database
update, which renames the permissions this module uses, so be sure to
run update.php on your site, and then visit your 'access control' page
(at /admin/access) to ensure the signup-related permissions are valid
for the roles defined on your site.

Major changes since 4.7.x-1.0:
= #91284: signup.module doesn't respect privacy: db_rewrite_sql() missing
= #91284: signup_conflicts.module doesn't respect privacy: db_rewrite_sql()
  missing
= Major permissions, UI and usability fixes (includes a DB update):
  - #69367: Turn the "Users can view signups" setting into a permission.
  - #69283: Rename all other permissions to be more clear, consistent, etc.
= #49007: Fix all the UI bugs and weird behavior about enabling and
  disabling signups per-node-type and per-node.
= #102949: For consistency, allow the %info token in reminder emails, too.

Other changes since 4.7.x-1.0:
= #126942: Add "Reset to defaults" on settings page.
= #104804 by hunmonk and dww: Fieldsets are now supported in the
  customized signup form. The code should now handle nested values
  regardless of depth.
= #67067: Required fields and default values on signup form. Inspired by
  a patch from pjdevries. Also cleans up the formatting of the $form
  array in this function, vastly improves the doxygen comment, and
  includes a step in the INSTALL.txt file about customizing this form.
= #125705: Make comment in signup.theme about not touching the
  definition of $form['signup_form_data']['#tree'] even more clear.
= #123648: Fixing improper use of links in watchdog() messages
= #78559: Fixing numerous bugs in signup translation:
  - Incorrect use of format_plural()
  - Badly formed t() strings with HTML and other goo inside wildly
    stale (and sometimes missing) .pot files
= #69372: Ported signup to use theme('username') for user links
= In the (evil, hard-coded) HTML for displaying signup information on
  user profile pages, we were leaving an H4 open by accident.
= l() calls check_plain() for you, so we were double-escaping output.
= #107154: Fix signup_sign_up_user() to prevent the same user from
  signing up more than once for the same node.
= #128021 by adrinux: Convert html br to xhtml and use strong instead of b


---------
4.7.x-1.0
---------
Initial official release from the stable 4.7.x-1.* series. There have
been no changes in the signup module since August 2006, so this should
be the same code as any of the signup-4.7.0.tar.gz files from
2006-08-19 and later. Additional releases of this series will only fix
bugs in the existing functionality.
